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


Posted in PHP onMarch 28, 2008

在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中的CMS的涵义
Mar 11 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
php ob_flush,flush在ie中缓冲无效的解决方法
May 09 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
php脚本运行时的超时机制详解
Feb 17 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP微信开发之查询城市天气
Jun 23 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
php5与php7的区别点总结
Oct 11 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 #PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 #PHP
php中文字符截取防乱码
Mar 28 #PHP
关于Intype一些小问题的解决办法
Mar 28 #PHP
php5中类的学习
Mar 28 #PHP
php一些公用函数的集合
Mar 27 #PHP
PHP之变量、常量学习笔记
Mar 27 #PHP
You might like
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
javascript 函数速查表
2010/02/07 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python map和reduce函数用法示例
2015/02/26 Python
python创建和删除目录的方法
2015/04/29 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
Python日期时间Time模块实例详解
2019/04/15 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
应届生财务管理求职信
2013/11/06 职场文书
现金会计岗位职责
2013/12/05 职场文书
公司财务总监岗位职责
2013/12/14 职场文书
庆元旦活动总结
2014/07/09 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
讲党性心得体会
2014/09/03 职场文书
常住证明范本
2015/06/23 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
java代码实现空间切割
2022/01/18 Java/Android