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

Как правильно поменять функцию preg_replace правильно на preg_replace_callback для PHP 7.2?

Перешел я тут наконец на PHP 7.2 ... И теперь ругается на функцию устаревшую!

$str = preg_replace('/"((?:""|[^"])*?)"/e', '"\\"".str_replace(";"," ","\\1")."\\""', $data);

И просит переделать её наконец в preg_replace_callback ... А каменный цветочек у меня не выходит что-то ((( Прощу помощи ...
  • Вопрос задан
  • 780 просмотров
Подписаться 2 Простой Комментировать
Ответ пользователя DanKud К ответам на вопрос (4)
@DanKud
Вы немного не верно интерпретировали устаревание. Устарела не сама функция, а модификатор /e, который вы используете. В вашем примере, если я правильно понял, должно быть так:
$str = preg_replace_callback(
    '/"((?:""|[^"])*?)"',
    function ($m) {
        return '\\"'.str_replace(';',' ',$m[1]).'\\"';
    },
    $data
);
Ответ написан
Комментировать