PHP 模板高级篇总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP 模板高级篇总结

PHP模板技术但是,我们为什么要用模板? 这个问题我也不能很好的回答。但是有很多人这么说:要让美工和程序员的工作分开。要让代码层和表现层分开。 那么我们看这两种方式实现了吗? 让您的美工人员打开一个smarty文件,让他按他的思路去改一下视图设计。他会告诉您,天哪,你怎么把我的设计变成这样一幅样子了?这些foreach,if都是什么意思?噢,天哪,我的表格怎么撑得这么大了?…. 原来编译型的模板技术让美工更没法子做美工了。 那么替换字符串型的呢?看起来是轻松多了。不过您可以测测您的程序速度,看看他是否已经慢了一倍以上。很容易,您用了太多的有preg_match,或是 str_ireplace之类的语句来替换。程序重复一次又一次在您那几万个甚至更多字节的模板文件中查找某个字串,来替换内容。 不仅如此,你还发现您哪天想在视层面插一点东西时,处处受制于模板。您肯定很想直接在模板中写一段之类的语句,但是,很抱歉,您不能这么写。如果只是想echo 一个什么东西,您可以在模板中加一个{{var}}的串,然后在php程序中写 $var=”这一个串”; $template-assign(”var”,$var); 但是如果您不是想输出呢,想做其他操作?抱歉,您还是得改php代码。这些模板都支持规矩矩的表格状的输出,但是,如果我想输出20条记录,我要弄一个第一行2列记录的,第二行3列的,第三行又是2行的之类的,或者是其他类似找码,您打算怎么办? 难道再让您的模板引擎也升级成为编译性的,好让您往您的模板中加入php语句? 您错了。其实,我们看一看,我们的模板引擎充当了什么样的角色呢?我们把一段特定的按一定规则编写的html代码进行一定的数据处理后输出成了另外 一段,输出过程中某些字符发生了改变。那我们的伟大的php干了什么呢?它帮我们把我们按规则写好的php代码也按一定规则输出成了一段html。两者本 质是一样的。只是,php本身比我们那些蹩脚的模板引擎更快,更漂亮。 再说细一点,现在用的最多的Smarty.看一看它的结构: {if $article.rates} span class=title{php}echo art_constant(MD_RATE);{/php}:/span span class=item{$article.rating}/{$article.rates}/span {/if} 你觉得它是一个美工能看清的html文件么? 看看编译后的结果,它看起来应该是这样的: ?php if($articles.rates){ ? span class=title?php echo art_constant(MD_RATE);?:/span span class=item?php echo $article.rating;?/?php echo article.rates;?/span ?php }? 哈。我们伟大的smarty把这html也变成了php了。然后在以后的工作中,这些php代码会直接被运行。 有必要吗?本来是apache承载php,php直接编译php 源代码,现在变成了apache承载php,php编译smarty引擎,smarty引擎又去编译html文件。反而多了一层,smarty自个儿把本来php要做的工作拿了做了。 而且糟糕的是,smarty的模板打开来以后,比php文件更让人难以看清。 所以我说,放弃您的模板系统吧。但记住我们开发模板系统的初衷。 您会说:那要是放弃模板系统了,我怎么分开程序逻辑和视图层面? 这个也太好办了。您可以这样写: 第一个文件这样写: ?php /** file :logic.php @author renlu xuhelloasp@ @link */ $rs=mysql_query(select id,title,body from articles order by id desc limit 30); while($row=$mysql_fetch_assoc($rs)) { $rows[]=$row; } ? 第二个文件作为您的视层面的文件。您可以让您的平面设计师在mac上设计漂亮绝顶的图片,然后切成html文件,交给您的页面整合工程师。这个工程 不需要懂太多php,他基本上只需要会用print就行了。他把这个html文件改名为view.php,然后在里面加上相应代码: ?php /** file:view.php @author renlu xuhelloasp@ @link */ foreach($rows as $row) { echo tr; echo td; echo $row[id]; echo /

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档