Изменил версию PHP на сервере и наткнулся на проблему использования модификатора "e" в регулярном выражении.
Нашел в интернете, что нужно преобразовать preg_replace в preg_replace_callback.
Сейчас код выглядит так:
$str = preg_replace("/(\w+)(:\w+)?/e", "'{'.strtoupper('\\1').'\\2}'", $str);
Помогите, пожалуйста преобразовать его в preg_replace_callback, чтобы это работало на PHP 7.4
Я попробовал сделать так:
$str = preg_replace_callback(
"/(\w+)(:\w+)?/",
function($matches){
foreach($matches as $match[]){
return '{'.strtoupper($match[0]).$match[1].'}';
}
},
$str
);
, но получилось криво. Что-то я пишу не так(((