第 1 頁 (共 2 頁)
[問題]我的 PHP bbcode和竹貓的不一樣
發表於 : 2003-12-13 19:11
由 sh85216s
這是從"竹貓"copy下來的

這是我家的
問題一:我家的正常嗎?
問題二:如要改成像竹貓那樣,要如何下手?
我安裝的是
PHP Syntax Highlighter BBCode
MOD Name: PHP Syntax Highlighter BBCode
Author: Fubonis
MOD Description: Highlights PHP specific code when used.
MOD Version: 3.0.3 (updated: 08/08/03)
請教大家.
發表於 : 2003-12-13 20:17
由 文
<?...?> 就是告知伺服器此處要進入PHP的處理模式,簡單講,PHP碼要放在<?...?>中
發表於 : 2003-12-13 21:39
由 messagebox
之前你好像有貼過一次~~
現在我看懂你的意思~~
你不要有<??>的符號出現\r
如果是~~
一定要使用者輸入的是\r
[ php][ /php]
而不是\r
[ php]<? ?>[ /php]
就是說使用者事先不輸入<??>
然後開啟你的includes/bbcode.php
代碼: 選擇全部
//尋找到比對取代這段文字~
$after_replace = str_replace('<font color="#0000BB">&_lt;?php', '<font color="#0000BB">', $after_replace);
$after_replace = str_replace('<font color="#0000BB">?&_gt;</font>', '', $after_replace);
將顏色代碼改為\r
#0000CC
則會將PHP語法醒目所製造出來的<?PHP?>取代掉~
注意
$after_replace = "<?php
$after_replace
?>";
這是之前他幫你加入的~
看你加入的是大寫PHP還是小寫php
比對取代的地方自己修改~
會造成這樣似乎是highlight_string舊版會輸出#0000BB的顏色代碼~
在新版的PHP是輸出#0000CC的顏色\r
發表於 : 2003-12-14 08:08
由 GeniusKiKi
那篇是我發表的吧\r
我是自己輸入的
當然沒有輸入 <?php 跟 ?>
竹貓的按鈕產生的話\r
也是有那兩個符號的阿
發表於 : 2003-12-14 08:45
由 sh85216s
messagebox 寫:之前你好像有貼過一次~~
現在我看懂你的意思~~
你不要有<??>的符號出現\r
如果是~~
一定要使用者輸入的是\r
[ php][ /php]
而不是\r
[ php]<? ?>[ /php]
就是說使用者事先不輸入<??>
然後開啟你的includes/bbcode.php
代碼: 選擇全部
//尋找到比對取代這段文字~
$after_replace = str_replace('<font color="#0000BB">&_lt;?php', '<font color="#0000BB">', $after_replace);
$after_replace = str_replace('<font color="#0000BB">?&_gt;</font>', '', $after_replace);
將顏色代碼改為\r
#0000CC
則會將PHP語法醒目所製造出來的<?PHP?>取代掉~
注意
$after_replace = "<?php
$after_replace
?>";
這是之前他幫你加入的~
看你加入的是大寫PHP還是小寫php
比對取代的地方自己修改~
會造成這樣似乎是highlight_string舊版會輸出#0000BB的顏色代碼~
在新版的PHP是輸出#0000CC的顏色\r
將3個#0000BB改為#0000CC之後,後面的
?>不見了,可是前面的
<?php還是在的.
發表於 : 2003-12-14 10:24
由 messagebox
按右鍵~
網頁原始檔~
看那個<?PHP
是什麼文字數字組成~
你沒留下你的網頁~
誰知道你的問題是什麼~
都跟你點出問題得癥結點了~
你就不肯去試一下喔~
發表於 : 2003-12-14 12:04
由 sh85216s
1.感謝您的幫忙.
2.
我的網址
3.我的bbcode.php中的部份程式如下:
代碼: 選擇全部
$after_replace = str_replace('<font color="#0000BB"><?php ', '<font color="#0000BB">', $after_replace);
$after_replace = str_replace('<font color="#0000BB">?></font>', '', $after_replace);
因為個人對語言部份一竅不通,還請多幫忙,再次謝謝大家!
發表於 : 2003-12-14 12:29
由 messagebox
sh85216s 寫:1.感謝您的幫忙.
2.
我的網址
3.我的bbcode.php中的部份程式如下:
代碼: 選擇全部
$after_replace = str_replace('<font color="#0000BB"><?php ', '<font color="#0000BB">', $after_replace);
$after_replace = str_replace('<font color="#0000BB">?></font>', '', $after_replace);
因為個人對語言部份一竅不通,還請多幫忙,再次謝謝大家!
你的PHP版本有點奇怪~
PHP語法醒目函式居然式轉換成這樣~
代碼: 選擇全部
<span style="color: #0000CC;"><?php </span>
<span style="color: #0000CC;">?></span>
請分別比對取代這兩個
就是將原本比對那段的
<font color="#0000BB">改為\r
<span style="color: #0000CC;">
糗後面請補上</span>
發表於 : 2003-12-14 13:04
由 sh85216s
我已經將程式碼改為\r
代碼: 選擇全部
$after_replace = str_replace('<span style="color: #0000CC;"><?php </span>', '<span style="color: #0000CC;">', $after_replace);
$after_replace = str_replace('<span style="color: #0000CC;">?></span></font>', '', $after_replace);
仍然和最早的時候一樣!
發表於 : 2003-12-14 13:17
由 messagebox
你不要照我抄喔~
<??>應該是這樣\r
&_lt;? ?&_gt;
去掉底線~
跟你說個技巧~
不然這樣不是辦法~
你去你自己的討論區~
用一次PHP語法~
然後檢視原始檔~
看他的<?php是變成怎樣~
然後把原始檔拿去比對取代為""\r
比對的函式為\r
string str_replace(string needle, string str, string haystack);
needle要找什麼字串\r
str要換成什麼字串\r
haystack原始字串\r
我舉個例子
$abc=str_replace("0","1","0101010");
絕果$abc會被指定為"1111111"
也就是說~"0101010"這個字串裡~將所有的"0"換成"1"
同理~~
要取代掉<?php跟?>
就是找到<?php跟?>
但是因為顧慮到可能在程式裡面會有其他的<?php跟?>
所以必須連他的HTML代碼一起找~
你的PHP編譯器有版本有點古怪~~
你不必每次都POST一篇文章~~用瀏覽邊改邊測試就可以了~
這種東西在PHP的程式裡面常常用到~
難道只要比對的字串不一樣~你就又得發問一次~
不懂程式我想跟這個沒太多關係~
這是觀念問題~你只要試著自己寫一次~~然後活用一下~
相信你馬上就知道到底該怎麼修正~
自己嘗試用用看~~~
不試~永遠都不會~
[php]<?php
$abc="Hello World!!";
echo "取代前:".$abc."<br>";
$abc = str_replace("Hello", "in the", $abc);
echo "取代後:".$abc;
?>[/php]
你可以自己嘗試看看~
將上面的PHP存成文件~
並自己執行看看~
看看變數$abc在取代前跟取代後有何不同~
加油吧~
發表於 : 2003-12-14 13:43
由 sh85216s
謝謝你的幫忙!我來試試看.
發表於 : 2003-12-14 15:39
由 sh85216s
1.遺憾地說:實在做不來!
2.想把它移除後重新安裝一個新的,可否推薦一下?
發表於 : 2003-12-14 15:55
由 messagebox
sh85216s 寫:1.遺憾地說:實在做不來!
2.想把它移除後重新安裝一個新的,可否推薦一下?
重裝會有一樣結果~
我只是想知道~多個<??>對你來說那麼重要嗎~
你的問題是你的PHP函式庫裡的highlight_string();這個函式~
所加的語法是<span style="color:#0000cc"></span>
而非作者預期的<font color="#0000BB"></font>
像對於我的函式庫~
他所作的輸出是<font color="#0000CC"></font>
所以我不需要修改太多東西~~
如果你真的那麼討厭那個~~我可以大概跟你說一下~
不過這種改法有可能會導致你的顯示可能會有問題~
代碼: 選擇全部
$after_replace = str_replace('&_lt;?php </span>', '', $after_replace);
$after_replace = str_replace('?&_gt;</span>', '', $after_replace);
//這裡往上幾行可以找到\r
$after_replace = "<?php".$after_replace."?>";
//請確定大小寫\r
//這裡的例子都已PHP為小寫為例
發表於 : 2003-12-14 17:03
由 sh85216s
1.其實有沒有多<?php和?>,並不重要,我比較擔心的是程式是否正常?
2.另外我發現:不論是否有加上<?php和?>,點按PHP按鈕後,顯示的結果都相同,真是讓人不以為然!!
3.我修改\r
代碼: 選擇全部
$lang['PHPCode'] = 'PHP'; // PHP MOD
為\r
代碼: 選擇全部
$lang['PHPCode'] = 'PHP 語法'; // PHP MOD
之後,在發文後顯示似乎正常,如下:

但按鈕卻變成
包括上述的問題,會讓我覺得自己的PHP bbcode似乎與眾不同!!
發表於 : 2003-12-14 17:22
由 messagebox
sh85216s 寫:1.其實有沒有多<?php和?>,並不重要,我比較擔心的是程式是否正常?
2.另外我發現:不論是否有加上<?php和?>,點按PHP按鈕後,顯示的結果都相同,真是讓人不以為然!!
3.我修改\r
代碼: 選擇全部
$lang['PHPCode'] = 'PHP'; // PHP MOD
為\r
代碼: 選擇全部
$lang['PHPCode'] = 'PHP 語法'; // PHP MOD
之後,在發文後顯示似乎正常,如下:

但按鈕卻變成
包括上述的問題,會讓我覺得自己的PHP bbcode似乎與眾不同!!
請改回PHP
要讓上面的顯示PHP語法
請到bbcode.tpl
尋找\r
<!-- BEGIN php_open -->
裡面就可以改~
至於你擔心有錯~
我可以明確跟你說~
沒有~~
只是取代時~因為找不到\r
<font color="#0000BB">&_lt;?php</font>
所以就沒取代~~
我之前也說過~
如果你試著去執行HELLO WORLD!!那個~
你就可以知道str_replace();函式的作用情況~
不過看來你似乎沒有~