Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Ошибка Warning: preg_replace() в интеграции uppod. Как поправить?

Ошибка Warning: preg_replace() в интеграции uppod. Как поправить?


     Все вопросы » Общие вопросы по PHP    2462

вопрос
столкнулся и я с такой ошибкой в php 5.5

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/html/test.site.ru/engine/classes/parse.class.php on line 410

сама строка

$source = preg_replace( "#\[uppod=([^\]]+)\]#ies", "\$this->build_uppod('\\1')", $source );


Помогите поправить, буду признателен.

Ответил: nowheremany


Тогда так
$that = $this;
$source = preg_replace_callback( "#\[uppod=([^\]]+)\]#is", function($m) use ($that){return $that->build_uppod($m[1]);}, $source );

5 комментариев

Апельсин
Юзер

Апельсин - -

нет, это с дефолтным. такая ошибка в новом php. 5,6

HidaN20
Юзер

HidaN20 - -

У самого такое было. Только только пофиксил. Перезалей дефолтный (тот что шел в месте с движком) parse.class.php. И все будет норм:)

Апельсин
Юзер

Апельсин - -

теперь ошибочка такая

Fatal error: Cannot use $this as lexical variable.

да, вот что мне phpinfo говорит

PHP Version 5.6.14-0+deb8u1
Apache Version Apache/2.4.10 (Debian)

nowheremany
Эксперт

nowheremany - -

***Комментарий удален***

Благодарность принимаю тут Связь

Апельсин
Юзер

Апельсин - -

А вот так отлично всё. Огромное спасибо тебе! с меня пиво :)

Похожие вопросы

наверх