ecshop中preg_replace替换为preg_replace_callback需要注意的事项
$pattern = "/<!--s#BeginLibraryItems"/(.*?)"s-->.*?<!--s#EndLibraryItems-->/se";
$replacement = ""{include file=".strtolower("\1"). "}"";
$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
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了