首页 > 解决方案 > 警告:preg_replace():不再支持 /e 修饰符我该如何修复它

问题描述

我有这个代码

$read = preg_replace(array('/LANG\[([0-9]*?)\]/e','/URL\[([0-9]*?)\]/e'),array('get_words(\\1)','url(\\1)'),$read);

如何使用 preg_replace_callback 修复它

标签: php

解决方案


错误消息告诉您删除e修饰符。

e修饰符现在已被删除/弃用- https://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

您可以简单地更改/e/i来阅读此内容;

$read = preg_replace(array('/LANG\[([0-9]*?)\]/i','/URL\[([0-9]*?)\]/i'),array('get_words(\\1)','url(\\1)'),$read);

或完全删除e以阅读此内容;

$read = preg_replace(array('/LANG\[([0-9]*?)\]/','/URL\[([0-9]*?)\]/'),array('get_words(\\1)','url(\\1)'),$read);

推荐阅读