Преобразование старого кода preg_replace в новую функцию обратного вызова

Я пытался преобразовать старый php-код, содержащий метод preg_replace, в новый, но не могу справиться. У меня есть три похожих метода preg_replace:

$encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
$encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
$encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
              "'='.sprintf('%02X', ord('\\1'))", $encoded);

Не могли бы вы помочь мне и перейти на более новый метод preg_replace_convert?

Я пытался сделать что-то подобное для первого, но я не знаю, как вставить метод sprintf в функцию соответствия:

$encoded = preg_replace_callback("/([^A-Za-z0-9!*+\/ -])/", function ($matches) {
            return chr($matches[1]);
        }, $encoded);

Какую старую версию вы хотите конвертировать?

nice_dev 17.05.2022 08:18
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
2
1
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

preg_replace() \e означает использование замены в качестве php-кода, поэтому в вашем случае, если вы используете preg_replace_callback(), вы должны изменить "'='.sprintf('%02X', ord('\\1'))" в случае 1 на return sprintf('%02X', ord($matches[1]));

Другие вопросы по теме