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开发GUI
Oct 09 PHP
php 什么是PEAR?(第二篇)
Mar 19 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
php实现图片缩放功能类
Dec 18 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
php实现每日签到功能
Nov 29 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
php文件上传类完整实例
2016/05/14 PHP
PHP children()函数讲解
2019/02/03 PHP
js对象数组按属性快速排序
2011/01/31 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
Python 私有化操作实例分析
2019/11/21 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Python装饰器结合递归原理解析
2020/07/02 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
小学学校门卫岗位职责
2014/08/03 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
解除同居协议书
2015/01/29 职场文书
演讲开场白和结束语
2015/05/29 职场文书
干部培训简讯
2015/07/20 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
代码复现python目标检测yolo3详解预测
2022/05/06 Python