ecShop的preg_replace改成preg_replace_callback
$pattern='/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se'...
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern, $replacement, $source);
这一句怎么改成preg_replace_callback或者其他解决办法。急急急。 展开
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace($pattern, $replacement, $source);
这一句怎么改成preg_replace_callback或者其他解决办法。急急急。 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏50(财富值+成长值)
2个回答
展开全部
替换成preg_replace_callback的语法如下,注意其中的/e修饰符
<?php
function getFileString($matches) {
return '{include file=' . strtolower($matches[1]) . '}';
}
// for test
$source = '<!-- #BeginLibraryItem "/library/recommend_promotion.lbi" --><!-- #EndLibraryItem -->';
//$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/s';
$replacement = '"{include file=' . strtolower('\\1') . '}"';
//$source = preg_replace($pattern, $replacement, $source);
$source = preg_replace_callback($pattern, "getFileString", $source);
print $source;
<?php
function getFileString($matches) {
return '{include file=' . strtolower($matches[1]) . '}';
}
// for test
$source = '<!-- #BeginLibraryItem "/library/recommend_promotion.lbi" --><!-- #EndLibraryItem -->';
//$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/s';
$replacement = '"{include file=' . strtolower('\\1') . '}"';
//$source = preg_replace($pattern, $replacement, $source);
$source = preg_replace_callback($pattern, "getFileString", $source);
print $source;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可以问下ecshop的开发人员看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询