Как передать маркер preg_replace в функцию?

Есть регулярное выражение
$arr['/pattern/'] = name_function('$1');
$result = preg_replace(array_keys($arr), array_values($arr), $string);

В паттерне есть несколько карманов, один из них нужно передать в функцию. Как это сделать? В функцию передается строка $1. Если убрать кавычки, то интерплитатор будет считать это как переменную.
preg_replace_callback не предлагать
  • Вопрос задан
  • 2343 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Arik
Модификаторы шаблонов
e (PREG_REPLACE_EVAL)
Если используется данный модификатор, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки. Одинарные и двойные кавычки, обратные слэши (\) NULL-символы будут проэкранированы обратными слэшами в подставляемых обратных ссылках.


Но кажись в последних версиях кидает deprecated, предлагают использовать как раз preg_replace_callback, почему вы не хотите?
Ответ написан
By_Engine
@By_Engine Автор вопроса
Ладно, вопрос закрыт. Использую preg_replace_callback
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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