ecshop开源商城,还是preg_replace的问题,我的cls_tempate.php1053行,该如何改成preg_replace_callback 55
这是代码:if($file_type=='.dwt'){/*将模板中所有library替换为链接*/$pattern='/<!--\s#BeginLibraryItem\...
这是代码:if ($file_type == '.dwt')
{
/* 将模板中所有library替换为链接 */
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern, $replacement, $source);
我按网上的改了下,是这样
$replacement = function ($matches) { return '{include file='.strtolower($matches[1]). '}';};
$source = preg_replace_callback($pattern, $replacement, $source)
可还是报错,求救
报错为Warning: preg_replace_callback(): Modifier /e cannot be used with replacement callback in C:\wwwroot\zhekouapp_fqdg8\includes\cls_template.php on line 1056 展开
{
/* 将模板中所有library替换为链接 */
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern, $replacement, $source);
我按网上的改了下,是这样
$replacement = function ($matches) { return '{include file='.strtolower($matches[1]). '}';};
$source = preg_replace_callback($pattern, $replacement, $source)
可还是报错,求救
报错为Warning: preg_replace_callback(): Modifier /e cannot be used with replacement callback in C:\wwwroot\zhekouapp_fqdg8\includes\cls_template.php on line 1056 展开
4个回答
展开全部
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/s';改成这样,去掉e
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是你的php版本过高问题,EC是比较老旧的东西,建议用php5.2运行
追问
知道什么问题了,虽然不是层主的答案,还是谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有点麻烦,建议你覆盖所有程序文件,或者看下php版本问题
追问
知道什么问题了,虽然不是层主的答案,还是谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
preg_replace_callback
不要用这个函数,用preg_replace
不要用这个函数,用preg_replace
追问
这个在新版的Php已经废除了,如果用新版的php会出现至少4个错误,就ecshop而言
追答
说实施ecshop这软件真心不咱地,不般的商城都会找人开发。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询