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

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

版主: 版主管理群

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

文章 sh85216s »

再次感謝
我修改了bbcode.tpl

代碼: 選擇全部

<td><span class="genmed"><b>[color=red]{L_PHP}:[/color]</b></span></td>
改成

代碼: 選擇全部

<td><span class="genmed"><b>[color=red]PHP 語法:[/color]</b></span></td>
PHP 語法字樣已經顯示正常了!

另一個問題我將再繼續去了解! 真的非常謝謝你!
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

完全不明所以然\r
如果只是要按按鈕的時候
系統不要自動加上 <?php 跟 ?>
只要修改posting_body.tpl 即可\r
至於該改哪\r
那就請您自行尋找
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 sh85216s »

看了一下官方文件,關於 posting_body.tpl 的只有如下部份

代碼: 選擇全部

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/posting_body.tpl


#
#-----[ FIND ]------------------------------------------
#
f_help = "{L_BBCODE_F_HELP}";


#
#-----[ AFTER, ADD ]------------------------------------------
#
x_help = "{L_BBCODE_X_HELP}";


#
#-----[ FIND ]------------------------------------------
#
bbtags = new Array(


# 
#-----[ IN-LINE FIND ]---------------------------------
# 
'[url]','[/url]'


#
#-----[ IN-LINE AFTER, ADD ]---------------------------------
# 
,'[ php ]','[ /php ]'

實在看不出所以然來.
您不如行行好,了了我這樁心事,如何?
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

請貼出貴站連結提供測試...

另外關於 <?php 跟 ?>
我發現我上面的說法是錯誤的
請不要嘗試\r

還有我實在搞不懂你到底想要什麼結果
你原文提到的那一篇文章
是因為程式碼是我自己用手輸入的
而不是使用 phpbb 的按鈕新增的
我只使用 [php][/php] 包住程式碼\r
沒有輸入 <?php 跟 ?>
自然顯示的時候就不會出現 <?php 跟 ?>
那我就搞不董這樣有什麼好問的
竹貓有輸入 <?php 跟 ?> 的話\r
一樣會顯示出來阿?
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

[php]<?php
有輸入 <?php 跟 ?>
?>[/php]

[php]沒有輸入 <?php 跟 ?>[/php]

就是這樣而已
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

GeniusKiKi 寫:[php]<?php
有輸入 <?php 跟 ?>
?>[/php]

[php]沒有輸入 <?php 跟 ?>[/php]

就是這樣而已
TO:GeniusKiKi~
那是正常人的狀況~
但在我的機器~PHP4.2.3版~
編譯出來的跟作者預期不同~
所以在我那其實也會有他這種狀況~

至於他那邊我有去看過~
更加特別~
OK~我大概說一下狀況~

(假設都是沒輸入<??>送出)
正常情形下~
在BBCODE.PHP裡面~
[php]<?php
if (preg_match('/^<\?.*?\?>$/si', $after_replace) <= 0)
{
$after_replace = "<?php".$after_replace."?>";
$added = TRUE;
}
?>[/php]
翻白話一點~
就是兩個PHP標籤之間尋找<??>包住的字串~如果找到的次數少於等於0
在自動在前後加上<?php?>
也就是說~即使沒輸入~程式還是會幫你加上去~
下面一點~

[php]<?php
if ($added == TRUE)
{
$after_replace = str_replace('<font color="#0000CC"><?php', '<font color="#0000CC">', $after_replace);
$after_replace = str_replace('<font color="#0000CC">?></font>', '', $after_replace);
}
?>[/php]
$added表示什麼??
往上翻一下~沒錯~
就是上面那一段表示~~這段文字程式曾經自動幫你加過頭尾<?php?>
這個boolean變數值為1或0~~

str_replace();函式~字串取代~
string str_replace(string a, string b, string c);
傳回值為字串\r
字串a為要取代的文字
字串b將字串a換成哪個字串\r
字串c~就是要等著被取代的字串~

當程式經過highlight_string()函式後~
會自動加上PHP語法醒目\r
其中~原本自動加上的<?php以及?>
分別會變成

(作者預期)
<font color="#0000BB">&_lt;?php
(在我的電腦)
<font color="#0000CC">&_lt;?php\r
(sh85216s的機器上)
<span style="color:#0000CC">&_lt;?php
上面的底線都要去除~

因為str_replace(必須一字不差)~
所以如果程式依照作者的寫法~
我跟sh85216s的機器上~~確實不管有沒有輸入~
頭尾都會顯示<?php?>

TO:sh85216s
這次寫的夠清楚了吧~要是真的還看不懂~~~說真的~我沒辦法了~
至於你的輸出到底是什麼~上面的只是我的印象中~~
請自行用span這個HTML標籤輸出~但其內容為何~~
請自己觀看HTML原始碼自己尋求答案~
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

這樣說我終於瞭解了~一.一|||
那抱歉了~
是我孤陋寡聞~^^|||
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
頭像
sh85216s
竹貓忠實會員
竹貓忠實會員
文章: 306
註冊時間: 2003-09-04 20:13
來自: 阿里阿度

文章 sh85216s »

再次感謝messagebox
我想:主因是因為自己對程式語言不了解,又擔心程式有誤,才會有這樣奇怪的問題!
謝謝你肯這樣詳盡的加以說明,剛好可以藉這個機會學習,真的收穫很多,3Q!
主題已鎖定

回到「phpBB 2 安裝與使用」