手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

解决使用ThinkPHP框架自带模版程序处理<??>出现的问题

首页 > PHP Framework >

使用ThinkPHP自带的模版引擎处理模版问题时,一般情况下不会有什么问题。

但是,在处理一些XHTML模版时,可能会遇到以下问题,比如,模版作者在制作模版时,为了规范页面,往往在文件头部加上<?xml version="1.0" encoding="utf-8"?>,表明文件是属于XML规范,所有的标签都必须遵循XML的相关规定。

然而,默认的ThinkPHP模版引擎在处理的时候会出现错误,处理这个错误的情况有以下几种办法。

第一种方法:你尝试关闭PHP的短标签功能
第二种方法:试着用<literal></literal>标签把XML的标签包含起来,即
<literal><?xml version="1.0" encoding="utf-8"?></literal>

 

第三种方法:修改ThinkPHP/Lib/Think/Template/ThinkTemplate.class.php的compiler函数,在函数的最后一行return $templContent;前加入

PHP代码
  1. // 将<?标签用echo方式输出   
  2. $tmplContent = preg_replace('/(<?(?!php|=|$))/i''<?php echo '\1'; ?>'."n"$tmplContent );   

任何一种方法理论上都可以,第一种第二种方法实在不行的时候,再用第三种,毕竟第三种方法是改动核心的,如果以后更新核心库,可能会不当心就覆盖掉了。

不过,流年说过了,他已经更新了模板引擎的解析类,并且专门判断了是否开启了短标签,如果开启的话会自动用第三种方法解析。更新下SVN的ThinkTemplate.class.php 文件就可以了(可能压缩包还没有同步更新[2008-04-22])。

 




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: thinkphp, template, 短标签

« 上一篇 | 下一篇 »

只显示10条记录相关文章

海龙CMS1.1 beta发布 (浏览: 37501, 评论: 25)
ThinkPHP介绍 (浏览: 29180, 评论: 3)
ThinkPHP怎么样更好的使用Smarty第三方插件 (浏览: 28402, 评论: 2)
TP单字母函数整理 (浏览: 27222, 评论: 1)
thinksns 不再开发了? (浏览: 26938, 评论: 4)
为ThinkPHP开发自定义标签几个注意事顶 (浏览: 26750, 评论: 0)
ThinkPHP两周年,同时有新的更新 (浏览: 22608, 评论: 2)
浅谈TP的COOKIE类 (浏览: 21227, 评论: 0)
顶想招聘 (浏览: 21109, 评论: 3)
TP1.5版本中使用smarty模版引擎的技巧 (浏览: 21006, 评论: 0)

发表评论

评论内容 (必填):