Royal Flash
-=MaestrO=-
В процессе перевода скриптов на UTF-8 появилась необходимость найти все не мультибайтовые функции, и в случае необходимости, заменить их на MB (strtolower -> mb_strtolower). Обычный preg_replace() не подойдет - так как перед заменой, нужно просмотреть отрезок кода, чтобы определить, нужна ли вообще замена. Для просмотра куска кода написал регулярку:
Но, поскольку в regexp я не силен, то составить её правильно для меня не просто. Нужно, чтобы регулярка захватывала 5 строк кода до strlen и 5 строк после (strlen может быть первой, второй, ... строкой и последней, предпоследней, ...). Разделитель строк может быть любым: /r/n, /n или что-то еще, что вообще может служить разделителем. Также, перед strlen не должно быть mb_, $ - но это исключение мне вроде бы удалось реализовать верно.
Был бы признателен за помощь в решении задачи с захватом предидущих-последующих строк...
PHP:
$search_pattern = '~('.".*(?:\n)".'.*(?<!mb_|\$)strlen\s?\(.+'."(?:\n).*".')~';
Был бы признателен за помощь в решении задачи с захватом предидущих-последующих строк...