preg_replace不能用/e修饰符
好吧,用preg_replace_callback代替preg_replace,修改ThinkTemplate.class就可以了,其中有多处preg_replace
举个栗子
// 替换block标签
//$content = preg_replace('/' . $begin . 'block\sname=(.+?)\s*?' . $end . '(.*?)' . $begin . '\/block' . $end . '/eis', "\$this->replaceBlock('\\1','\\2')", $content);
//上面一行改成下面的
$content = preg_replace_callback('/' . $begin . 'block\sname=(.+?)\s*?' . $end . '(.*?)' . $begin . '\/block' . $end . '/is', function ($r) {
return replaceBlock($r[1], $r[2]);
}, $content);附改好的文件
ThinkTemplate.class.rar
( 6.67 KB 下载:1149 次 )
最佳答案