让TP3.1支持php7的方法

浏览:8581 发布日期:2016/11/24 分类:技术分享 关键字: php7
TP3.1不支持php7的原因是模板解析不成功
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 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>