Задать вопрос

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

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

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


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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽