2014-02-27 50 views
0

歡迎。最新的PHP和preg_replace()

我有問題,因爲當我安裝最新Xampp我在我的網站上有錯誤,但我不能PHP,我不知道如何修復它。

錯誤內容:

推薦使用:的preg_replace():該/ e修飾符已過時,使用 preg_replace_callback在代替 C:\ XAMPP \ htdocs中\ EXTREME \ SYSTEM \ bbcodes \ mail.php上線35

Mail.php內容:

<?php defined('EF5_SYSTEM') || exit; 

$_locale->load('mail'); 

$bbcode_info = array(
    'name' => __('Mail'), 
    'description' => __('Displays the text as an e-mail address'), 
    'value' => 'mail' 
); 

if($bbcode_used) 
{ 
    $text = preg_replace('#\[mail=([\r\n]*)([^\s\'\";:\]*?)\](.*?)([\r\n]*)\[/mail\]#sie', "'<a href=\'http://mailto:'.HELP::hide_email('\\2').'\' target=\'_blank\' title=\''.HELP::hide_email('\\2', '\\2').'\'>'.HELP::hide_email('\\2').'</a>'", $text); 
    $text = preg_replace('#\[mail\]([\r\n]*)([^\s\'\";:\]*?)([\r\n]*)\[/mail\]#sie', "'<a href=\'http://mailto:'.HELP::hide_email('\\2').'\' target=\'_blank\' title=\''.HELP::hide_email('\\2').'\'>'.HELP::hide_email('\\2').'</a>'", $text); 
} 

回答

1

嘗試沒有e改性劑,如該錯誤消息

<?php defined('EF5_SYSTEM') || exit; 

$_locale->load('mail'); 

$bbcode_info = array(
    'name' => __('Mail'), 
    'description' => __('Displays the text as an e-mail address'), 
    'value' => 'mail' 
); 

if($bbcode_used) 
{ 
    $text = preg_replace('#\[mail=([\r\n]*)([^\s\'\";:\]*?)\](.*?)([\r\n]*)\[/mail\]#si', "'<a href=\'http://mailto:'.HELP::hide_email('\\2').'\' target=\'_blank\' title=\''.HELP::hide_email('\\2', '\\2').'\'>'.HELP::hide_email('\\2').'</a>'", $text); 
    $text = preg_replace('#\[mail\]([\r\n]*)([^\s\'\";:\]*?)([\r\n]*)\[/mail\]#si', "'<a href=\'http://mailto:'.HELP::hide_email('\\2').'\' target=\'_blank\' title=\''.HELP::hide_email('\\2').'\'>'.HELP::hide_email('\\2').'</a>'", $text); 
} 

我在兩條線路改變#sie#si建議。

e修飾符允許您在正則表達式中評估PHP代碼,但現在它已被棄用,不應再使用。無論如何你並不需要它。

+1

謝謝,它的工作! – user3361928