Забыли пароль?
Запросите новый здесь.

Автор темы: Alex_OOPS
ID темы: 2575
Информация:
Тема содержит 5 сообщения, была просмотрена 10649 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Ошибки, баги
 Распечатать тему
Ошибка preg_replace(): The /e modifier is deprecated
Alex_OOPS
Помогите, не могу понять где ошибка:

Скачать исходники  Код
 $text = preg_replace('#\[url\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\"]*?)([\r\n]*)\[/url\]#sie', "'<a href=\'\\2\\3\'
    target=\'_blank\' title=\'\\2\\3\'>'.trimlink('\\2\\3', 20).(strlen('\\2\\3')>30?substr('\\2\\3', strlen('\\2\\3')-10,
    strlen('\\2\\3')):'').'</a>'", $text); 




название самой ошибке( или сообщение о ней):

Скачать исходники  Код
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead




Изменил(а) FILON, 18.10.2015 20:28
 
Polarfox
это уведомление что ббкод сделан не по шариату - если выключишь его или перепишешь - все пройдет.

конкретно модификатор - e
'#\[url\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\"]*?)([\r\n]*)\[/url\]#sie'


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
FILON
Функция preg_replace() с модификатором e признана устаревшей. Вместо неё необходимо использовать preg_replace_callback().

Пример:
Загрузить источник  GeSHi: PHP
  1. '#\[url\]([\r\n]*)([^\s\'\"]*?)([\r\n]*)\[/url\]#is',
  2. function($matches) {
  3. return "<a href='http://".$matches[2]."' target='_blank' title='".$matches[2]."'>".trimlink($matches[2], 20).(strlen($matches[2])>30?substr($matches[2], strlen($matches[2])-10, strlen($matches[2])):'')."</a>";
  4. },
  5. $text
  6. );
Добавлено за 0.019 секунд, используя GeSHi 1.0.8.10


What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
 
mpflash
Подниму тему вверх, актуальная проблема при обновленном РНР, пока заметил только в этом файле, зарубежные форумы также ругаются на этот файл + url_bbcode_include.php + mail_bbcode_include.php + img_bbcode_include.php

оригинал !autolink_bbcode_include.php с ошибкой: The /e modifier is deprecated, use preg_replace_callback instead
Загрузить источник  GeSHi: PHP
  1.  
  2. $text = preg_replace('#(^|[\n ])((http|https|ftp|ftps)://[\w\#$%&~/.\-;:=,?@\[\]\(\)+]*)#sie', "'\\1<a href=\''.trim('\\2').'\' target=\'_blank\' title=\'autolink\'>'.trimlink('\\2', 20).(strlen('\\2')>30?substr('\\2', strlen('\\2')-10, strlen('\\2')):'').' </a>'", $text);
  3. $text = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]\(\)+]*)#sie", "'\\1<a href=\'http://'.trim('\\2').'\' target=\'_blank\' title=\'autolink\'>'.trimlink('\\2', 20).(strlen('\\1')>30?substr('\\2', strlen('\\2')-10, strlen('\\2')):'').' </a>'", $text);
  4. $text = preg_replace("#([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#sie", "hide_email('\\1@\\2')", $text);
  5.  
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


делюсь поправкой 3х строк в !autolink_bbcode_include.php для свежих версий PHP

Загрузить источник  GeSHi: PHP
  1.  
  2. $text = preg_replace_callback('#(^|[\n ])((http|https|ftp|ftps)://[\w\#$%&~/.\-;:=,?@\[\]\(\)+]*)#is', function($matches) { return $matches[1]." <a href='http://".$matches[2]."' target='_blank' title='autolink'>".trimlink($matches[2], 20).(strlen($matches[2])>30?substr($matches[2], strlen($matches[2])-10, strlen($matches[2])):'')." </a>'";} ,$text);
  3. $text = preg_replace_callback("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]\(\)+]*)#is", function($matches) { return $matches[1]." <a href='http://".$matches[2]."' target='_blank' title='autolink'>".trimlink($matches[2], 20).(strlen($matches[2])>30?substr($matches[2], strlen($matches[2])-10, strlen($matches[2])):'')." </a>'";} ,$text);
  4. $text = preg_replace_callback("#([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#is", function($matches) { return hide_email($matches[1]."@".$matches[2]); }, $text);
Добавлено за 0.021 секунд, используя GeSHi 1.0.8.10


Изменил(а) mpflash, 26.05.2016 22:22
 
SchreiBear
mpflash, филон тебе правельно написал..preg_replace_callback() в помошь


Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: