当前位置: 首页 > 图文教程 > 网络编程 > PHP > php heredoc和phpwind的模板技术使用方法小结

PHP
PHP中上传大体积文件时需要的设置
用PHP生成PDF文件 with FPDF
在同一窗体中使用PHP来处理多个提交任务
PHP经验交流:php访问access的方法
PHP实用手册:PHP常用正则表达式收集
也用PHP来实现网页静态发布的两种方法
PHP使用zlib扩展实现页面GZIP压缩输出
PHP的语言层面的优化以及代码优化技巧
PHP实例:上传多个图片并校验的代码
用php+odbc+access数据库来操作函数
用PHP来实现页面GZIP的压缩输出教程
PHP进阶技巧:php用流方式制作缩略图
使用php 5时MySQL返回乱码的解决办法
新手如何使用PHP来创建RSS的阅读器
PHP实用:用PHP来实现图片的简单上传
利用php和js来轻松实现页面数据的刷新
在PHP中使用随机数的三个步骤详细代码
PHP进阶技巧:如何避免表单的重复提交
PHP技术进阶 PHP SOCKET 技术研究
PHP技术进阶:php用流方式制作缩略图

PHP 中的 php heredoc和phpwind的模板技术使用方法小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 41 ::
收藏到网摘: n/a

Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind就是一个典型的例子。 在PHP的文档中,只是提到了echo可以使用如下命令输出多行字符串(而且其中的变量被自动替换):
PHP代码
复制代码 代码如下:

echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END;

上面的END结束符可以自己规定,在Phpwind,使用了“EOT”来结束。但是需要注意的是,这个END必须是在一行的开头才能有效,这其实是Heredoc技术的一个局限性(因为heredoc可以自定义结束符,所以引入了这个问题),在下面会提到。
phpwind的模板文件一般存放在templatewind目录下面,在BBS目录中,使用require语句包含这个模板文件。其实这个模板文件是作为对应的PHP文件的一部分执行的,所以就不需要像PHPLib Template那样需要进行模板解析,然后再执行的过程。
为了让heredoc的内容能被DreamWeaver这样的编辑器正确识别,以实现“所见即所得的”的网页设计,需要在heredoc中增加注释,示例文件如下:
PHP代码
复制代码 代码如下:

<!--
<?php
print <<<EOT
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body>
<!--
$name = '浅水游';
print <<<EOT
-->
Hello,$name!
<!--
EOT
print <<<EOT
-->
</body>
</html>
<!--
EOT;
?>
-->

这样的模板文件,其实就是一个标准的,可以执行的PHP文件。但是,这样的PHP文件,其HTML样式在DreamWeaver中可以正确的显示出来,所有的PHP代码会被看做HTML注释,而且在输出的时候,不会输出出来。比如,上面的文件在DreamWeaver中,被显示成:
PHP代码
复制代码 代码如下:

Hello,$name!

这样,在设计页面的时候,我们就可以借助DW的可视化界面,进行一些界面的修改,美化等工作。尽管没有实现完全的代码和HTML的分离,但至少提供了一种辅助性的设计手段。