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

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


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

вопрос
столкнулся и я с такой ошибкой в 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 комментариев

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

Апельсин - 17 декабря 2015 05:37 -

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

HidaN20
Юзер

HidaN20 - 17 декабря 2015 09:13 -

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

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

Апельсин - 17 декабря 2015 17:31 -

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

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 - 17 декабря 2015 22:51 -

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

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

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

Апельсин - 17 декабря 2015 23:01 -

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх