WP-lightbox Не рекомендуется: preg_replace(): модификатор /e устарел, вместо него используйте preg_replace_callback

Мой плагин wp-lightbox evolution показывает мне ошибку

Устаревшее: preg_replace(): модификатор /e устарел, вместо него используйте preg_replace_callback

И когда я заменяю это preg_replace_callback Я получаю сообщение об ошибке:

Предупреждение: preg_replace_callback(): Требуется, чтобы аргумент 2, 'stripslashes(strstr("\1\3", "class=")? "\0": "")', был действительным обратным вызовом

Любая помощь будет оценена.

С уважением

1 ответ

preg_replace с /e Модификатор, используемый для принятия кода PHP в виде строки.

preg_replace_callback принимает вызываемого. Функция, которая preg_replace_callback должен принять массив совпадений и вернуть строку, которая будет использоваться в качестве замены.

Если вы не используете этот код где-либо еще, имеет смысл использовать анонимную функцию, например так:

preg_replace_callback(YOUR_PATTERN_HERE, function ($matches) {
  return stripslashes(
    strstr($matches[1] . $matches[3], "class=")
      ? $matches[0]
      : "");
}, YOUR_STRING_TO_BE_CHANGED_HERE);

См. Вопрос Замените preg_replace() e модификатор preg_replace_callback для получения дополнительной информации.

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