从品牌网站建设到网络营销策划,从策略到执行的一站式服务
PHPCMS的模板解析函数是/phpcms/libs/classes/template_cache.class.php这个类中的template_parse函数.
漾濞网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
我把这个文件拿出来,然后在下面直接写上
$str = '{php echo 1} -- {$abc}';
$template = new template_cache();
echo $c = $template->template_parse($str);
这时输出的是
不出所料,解析出的代码,出现了语法错误,我们 想要的结果应该是
--
下面开始找问题,在函数template_parse的第3行,是用来解析php开头的模板语法的
$str = preg_replace ( "/\{php\s+(.+)\}/", "", $str );
这里可以看出,解析的方式是找到{php后面所有的内容,直到另一半大括号},这之间的内容,全部放到之间.
我们上面的例子之所以会出现那个结果,是因为在遇到第一个右大括号}时,没有把它当做结尾,而是继续向后读取.
知道原因后,就容易修改了
在正则中加一个问号?,用来表示非贪婪读取,在读到第一个右大括号时,就结束.
$str = preg_replace ( "/\{php\s+(.+?)\}/", "", $str );
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图