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 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
php字符串截取函数用法分析
Nov 25 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
php模拟post上传图片实现代码
Jun 24 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
php封装的mongodb操作类代码
Aug 06 PHP
php如何利用pecl安装mongodb扩展详解
Jan 09 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
php文件上传原理与实现方法详解
Dec 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
session 的生命周期是多长
2006/10/09 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php中JSON的使用方法
2015/04/30 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
表单提交验证类
2006/07/14 Javascript
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
bootstrap table实例详解
2017/01/06 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
Python实现excel转sqlite的方法
2017/07/17 Python
Python----数据预处理代码实例
2019/03/20 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
python实现智能语音天气预报
2019/12/02 Python
python绘制动态曲线教程
2020/02/24 Python
python 线程的五个状态
2020/09/22 Python
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
学生实习推荐信范文
2013/11/26 职场文书
应届毕业生自荐书
2014/06/18 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS