我對內容管理系統的工作,和我目前使用BB代碼有特殊字符的能力。這種設置的方式是使用2個數組,一個用於查找BB代碼,另一個用它需要替換的東西。問題與插入位的PHP代碼到一個數組
現在我遇到的問題是,我需要在系統請求時執行一點PHP代碼。我會怎麼做呢?這使得我的問題:我如何將一些PHP代碼插入到數組中?
我的代碼:
$replace = array(
"@\[email protected]",
"/\[b\](.+?)\[\/b\]/is",
"/\[code\=(.+?)\](.+?)\[\/code\]/is"
);
$find = array(
"<br />",
"<strong>$1</strong>",
"<?php include_once($_SERVER['DOCUMENT_ROOT'].'/source/geshi/geshi.php'); $source=file_get_contents('file.php'); $language='$1'; $geshi=new GeSHi($source, $language); echo'<code class=\"num\">', implode(range(1,count(file('file.php'))), '<br />'), '</code>'; echo $geshi->parse_code(); ?>"
);
,我得到的錯誤:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /testing/bbcode.php on line 26
感謝提前
編輯:對雙引號,反之亦然交換單一的伎倆!
現在我有一個問題:
當我有這樣的:
"/\[color\=(.+?)\](.+?)\[\/color\]/is",
在我的$查找陣列,這在我的$取代數組:
"<font color=\"$1\">$2</font>",
它工作正常,並將文本呈現爲輸入的顏色。現在用[代碼PHP =] [/代碼]例如,它不會在所有的渲染,只是顯示爲「[代碼PHP =] [/代碼]」彷彿呈現任何內容。我該如何解決這個問題?
你需要它來執行由用戶輸入的PHP代碼?你瘋了? –
如果是這樣,那麼確切地說有零種方法可以使這種安全方法和大約10億種方法來解決任何你可以想到的保護措施。一切從使用變量函數來連接變量來創建函數名稱,使用變量名稱的數字等等。你永遠無法保證這一點。和任何你的PHP腳本可以做的(這幾乎是你的服務器上的任何命令),你的用戶將能夠做你的服務器。 –
@JonathanKuhn,沒有,由一個堅實的帳戶系統保護,只有我可以訪問,並且我讓它學習,它不會在任何地方的網站:) – BananaMan