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

2015-01-24信息快讯网
在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的分离,但至少提供了一种辅助性的设计手段。
PHP扩展编写点滴 技巧收集
php 修改zen-cart下单和付款流程以防止漏单
PHP 最大运行时间 max_execution_time修改方法
php ss7.5的数据调用 (笔记)
phpmyadmin 常用选项设置详解版
PHP clearstatcache()函数详解
PHP正则的Unknown Modifier错误解决方法
php 读取shell管道传输过来的内容
php 用checkbox一次性删除多条记录的方法
支持数组的ADDSLASHES的php函数
同台服务器使用缓存APC效率高于Memcached的演示代码
php foreach 使用&(与运算符)引用赋值要注意的问题
php addslashes和mysql_real_escape_string
PHPMailer 中文使用说明小结
关于php fread()使用技巧
PHP has encountered an Access Violation 错误的解决方法
PHP编程过程中需要了解的this,self,parent的区别
php jquery 实现新闻标签分类与无刷新分页
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
PHP5中的时间相差8小时的解决办法
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
php中文字符截取防乱码
php5中类的学习
php一些公用函数的集合
PHP之变量、常量学习笔记
require(),include(),require_once()和include_once()区别
php str_replace的替换漏洞
Apache+php+mysql在windows下的安装与配置(图文)第1/2页
asp和php下textarea提交大量数据发生丢失的解决方法
apache rewrite_module模块使用教程
使用 eAccelerator加速PHP代码的方法
实现php加速的eAccelerator dll支持文件打包下载
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
解决php中Cannot send session cache limiter 的问题的方法
©2014-2024 dbsqp.com