2014-02-27 2 views
0

Добро пожаловать.Новые PHP и preg_replace()

У меня проблема, потому что, когда я установил новейший Xampp У меня есть ошибки на моем сайте, но я не могу PHP, и я не знаю, как его восстановить.

Содержание ошибки:

Устаревшие: preg_replace(): Модификатор/е является устаревшим, используйте preg_replace_callback вместо этого в C: \ XAMPP \ HTDOCS \ ЭКСТРЕМАЛЬНЫЙ \ система \ 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

Try без модификатора 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