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模板引擎SMARTY
Oct 09 PHP
简单的页面缓冲技术
Oct 09 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 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
再次研究下cache_lite
2007/02/14 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
关于svn冲突的解决方法
2013/06/21 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
php防止用户重复提交表单
2015/11/02 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
基于vue实现探探滑动组件功能
2020/05/29 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
全面了解python中的类,对象,方法,属性
2016/09/11 Python
python发送告警邮件脚本
2018/09/17 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python使用smtplib模块发送邮件
2020/12/17 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
应届生污水处理求职信
2013/11/06 职场文书
销售工作岗位职责
2013/12/24 职场文书
上课玩手机检讨书
2014/02/08 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
北京奥运会口号
2014/06/21 职场文书
好的促销活动方案
2014/08/21 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书