2016-10-02 36 views
-1

錯誤:的preg_replace():本/ E改性劑已被棄用,使用preg_replace_callback而不是PHP的

preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead 

代碼:

function convert_url_to_bbcode($messagetext){ 
$skiptaglist = 'url|email|code|php|html|noparse'; 

return preg_replace(
    '#(^|\[/(' . $skiptaglist . ')\])(.*(\[(' . $skiptaglist . ')|$))#siUe', 
    "convert_url_to_bbcode_callback('\\3', '\\1')", 
    $messagetext 
); } 

任何想法?順便說一句,我有0 PHP的經驗。遺憾:)

回答

0

的信息是自解釋的,使用preg_replace_callback並通過代碼作爲匿名函數而不是把該代碼在正規表達式字符串:

return preg_replace(
    '#(^|\[/(' . $skiptaglist . ')\])(.*(\[(' . $skiptaglist . ')|$))#siU', 
    function ($ match) { return convert_url_to_bbcode_callback($m[3], $m[1]); }, 
    $messagetext 
); 
相關問題