LINUX.ORG.RU

Новая версия preg_replace в PHP7

 


0

2

Друзья, столкнулся с проблемой при переходе на PHP 7 версии, а именно с переполнением preg_replace. Суть проблемы: ранее (до перехода на PHP 7) данный код отлично отрабатывал (текст не содержит смысла важна только его длина)

<?php

$s = <<<EOA
TEST <!-- МОЯ хозяйка Зина больше похожа на фокса, чем на девочку: визжит, прыгает, ловит руками мяч (ртом она не умеет) и грызёт сахар, совсем как собачонка. Всё думаю - нет ли у неё хвостика? Ходит она всегда в своих девочкиных попонках; а в ванную комнату меня не пускает - уж я бы подсмотрел. МОЯ хозяйка Зина больше похожа на фокса, чем на девочку: визжит, прыгает, ловит руками мяч (ртом она не умеет) и грызёт сахар, совсем как собачонка. Всё думаю - нет ли у неё хвостика? Ходит она всегда в своих девочкиных попонках; а в ванную комнату меня не пускает - уж я бы подсмотрел.МОЯ хозяйка Зина больше похожа на фокса, чем на девочку: визжит, прыгает, ловит руками мяч (ртом она не умеет) и грызёт сахар, совсем как собачонка. Всё думаю - нет ли у неё хвостика? Ходит она всегда в своих девочкиных попонках; а в ванную комнату меня не пускает - уж я бы подсмотрел.МОЯ хозяйка Зина больше похожа на фокса, чем на девочку: визжит, прыгает, ловит руками мяч (ртом она не умеет) и грызёт сахар, совсем как собачонка. Всё думаю - нет ли у неё хвостика? Ходит она всегда в своих девочкиных попонках; а в ванную комнату меня не пускает - уж я бы подсмотрел.МОЯ хозяйка Зина больше похожа на фокса, чем на девочку: визжит, прыгает, ловит руками мяч (ртом она не умеет) и грызёт сахар, совсем как собачонка.<!-- эксплуатацию --></body></html>
EOA;

$search = '/<!--(.|\s)*?-->/';
echo preg_replace($search, '', $s);
?>

Теперь вместо результата получаю «» (пустая строка)

Как такое может быть? Благодарю за пояснение от гуру.

Важное дополнение. Если количество текста уменьшить - правило отработает, а именно все скроется между <!-- и -->

morkovkin
() автор топика
Ответ на: комментарий от morkovkin

да, поспешил. пардон.

видимо, тебе нужно проверить, что выдает preg_last_error().

PREG_BACKTRACK_LIMIT_ERROR PREG_JIT_STACKLIMIT_ERROR

вот это вот.

conalex ★★★
()
Последнее исправление: conalex (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.