17
2021
08

ectouchtr报错return ucfirst preg_replace()

return ucfirst preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in

php5.5版本以上 就废弃了  preg_replace   函数中 /e 这个修饰符,总共改了5个文件:

ectouchtr报错return ucfirst preg_replace()


EcsTemplate.class.php第911行,

preg_replace_callback(): Requires argument 2, 'stripslashes(trim('\1','\''));', to be a valid callback in



$pattern     = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';

            $replacement = "'{include file='.strtolower('\\1'). '}'";

            $source      = preg_replace($pattern, $replacement, $source);



这一段代码有两处需要修改:


$pattern     = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';  中的'e'要去掉

$source      = preg_replace($pattern, $replacement, $source); 改为:


$source= preg_replace_callback($pattern, function ($matcher) { return '{include file=' . strtolower($matcher[1]). '}'; },$source);


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。