Задать вопрос
Antonchik
@Antonchik
Программирую на HTML

Как исправить ошибку с регуляркой?

Здравствуйте, выдает мне такую ошибку
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
вот сама регулярка
preg_replace('/\&\#([0-9]+)\;/me', "((\\1>255)?(utf8_decode(code2utf(\\1))):('&#\\1;'))", $t);
как исправить?
  • Вопрос задан
  • 241 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
miraage
@miraage
Старый прогер
Используйте preg_replace_callback.
Ваш Капитан.

// EDIT

Как-то так получается.
$in = '...your text...';

// never use "e"
$bad = preg_replace('/\&\#([0-9]+)\;/me', "((\\1>255)?(utf8_decode(code2utf(\\1))):('&#\\1;'))", $in);

// use callback instead
$good = preg_replace_callback(
  '/\&\#([0-9]+)\;/m',
  function ($m) {
    if ($m[1] > 255) {
      return utf8_decode(code2utf($m[1]));
    }
    
    return "&#${m[1]};";
  },
  $in
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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