牛骨文教育服务平台(让学习变的简单)
博文笔记

ecshop中preg_replace替换为preg_replace_callback需要注意的事项

创建时间:2017-04-03 投稿人: 浏览次数:150
$pattern     = "/<!--s#BeginLibraryItems"/(.*?)"s-->.*?<!--s#EndLibraryItems-->/se";
            $replacement = ""{include file=".strtolower("\1"). "}"";

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


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

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

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

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



原因分析:

php5.5版本以上 就废弃了  preg_replace   函数中 /e 这个修饰符



参考资料:

http://www.cnblogs.com/jesu/p/5253615.html

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。