[問題]我的 PHP bbcode和竹貓的不一樣

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

[問題]我的 PHP bbcode和竹貓的不一樣

文章 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)

請教大家.
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

<?...?> 就是告知伺服器此處要進入PHP的處理模式,簡單講,PHP碼要放在<?...?>中
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 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
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

那篇是我發表的吧\r
我是自己輸入的
當然沒有輸入 <?php 跟 ?>
竹貓的按鈕產生的話\r
也是有那兩個符號的阿
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 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還是在的.
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

按右鍵~
網頁原始檔~
看那個<?PHP
是什麼文字數字組成~
你沒留下你的網頁~
誰知道你的問題是什麼~
都跟你點出問題得癥結點了~
你就不肯去試一下喔~
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 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);

因為個人對語言部份一竅不通,還請多幫忙,再次謝謝大家!
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 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>
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 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);
仍然和最早的時候一樣!
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 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在取代前跟取代後有何不同~
加油吧~
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 sh85216s »

謝謝你的幫忙!我來試試看.
架設主機︰Fedora Core 5
上網方式:Hinet ADSL (2M/512K)
安裝程式:Apache + php + MySql
phpBB2 版本: phpBB 2.0.21
phpBB2 連結網址: 小站
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 sh85216s »

1.遺憾地說:實在做不來!
2.想把它移除後重新安裝一個新的,可否推薦一下?
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 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為小寫為例
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 sh85216s »

1.其實有沒有多<?php和?>,並不重要,我比較擔心的是程式是否正常?
2.另外我發現:不論是否有加上<?php和?>,點按PHP按鈕後,顯示的結果都相同,真是讓人不以為然!!
3.我修改\r

代碼: 選擇全部

$lang['PHPCode'] = 'PHP'; // PHP MOD
為\r

代碼: 選擇全部

$lang['PHPCode'] = 'PHP 語法'; // PHP MOD
之後,在發文後顯示似乎正常,如下:
圖檔
但按鈕卻變成
圖檔

包括上述的問題,會讓我覺得自己的PHP bbcode似乎與眾不同!!
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 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();函式的作用情況~
不過看來你似乎沒有~
主題已鎖定

回到「phpBB 2 安裝與使用」