日期:2014-05-16  浏览次数:20713 次

preg_replace_callback函数
$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);

这一句 用preg_replace_callback函数怎么改写呢 求指教下 
------解决方案--------------------
$val = preg_replace_callback("/\[([^\[\]]*)\]/eis", function($match){ return str_replace('$','\$',$match)}, $val);

------解决方案--------------------
$val = preg_replace_callback(
        '/\[([^\[\]]*)\]/is',
        function ($matches) {
            return '.'.str_replace('$','\$',$matches[1]);
        },
        $val
    );
echo $val;

------解决方案--------------------
引用:
最后一处了 这里中间的代码 include哪一行不清楚怎么改

$pattern = '/<!--\s#BeginLibraryItem\s\"\/(.*?)\"\s-->.*?<!--\s#EndLibraryItem\s-->/s';
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source = preg_replace_callback($pattern, $replacement, $source);
- -

还是一样的 也还是一字符串啊 还是原来的方式就行了
------解决方案--------------------
$replacement = function ($matches) { return '{include file='.strtolower($matches[1]). '}';};