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函数
Oct 03 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
php开发文档 会员收费1期
Aug 14 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
php curl常用的5个经典例子
Jan 20 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
php strftime函数的详细用法
Jun 21 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
什么是JavaScript
2009/08/13 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
python实现图片筛选程序
2018/10/24 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
《太阳》教学反思
2014/02/21 职场文书
会计岗位描述
2014/02/22 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
为自己工作观后感
2015/06/11 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
Go语言中的UTF-8实现
2021/04/26 Golang
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技