Поломалась регулярка после обновления на PHP7

d0ublezer0

Мой дом здесь!
Регистрация
21 Май 2009
Сообщения
367
Реакции
201
Привет!
Словил ошибку после включения PHP7:

Warning: preg_replace() The /e modifier is no longer supported, use preg_replace_callback instead in filename.php on line 49

А там вот такое:
Код:
$article->text = preg_replace('|{youtube}(.*){\/youtube}|e', '$this->embedVideo("\1")', $article->text);

Подскажете, как починить?
Поискал решение сам, не смог разобраться
 
Модификатор «e» — это исполнение кода, отменен в целях безопасности.
Уберите его и после preg_replace — сделайте eval, будет то же самое.
Либо замените на preg_replace_callback
Для просмотра ссылки Войди или Зарегистрируйся
 
Спасибо, починил!
Код:
<?php
        $article->text = preg_replace_callback(
            '|{youtube}(.*){\/youtube}|',
            function ($m) {
                return $this->embedVideo($m[1]);
            },
            $article->text
        );
?>
 
Назад
Сверху