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中批量替换文件名的实现代码
Jul 20 PHP
sql注入与转义的php函数代码
Jun 17 PHP
php获取汉字首字母的函数
Nov 07 PHP
php指定函数参数默认值示例代码
Dec 04 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 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
php如何执行非缓冲查询API
2016/07/22 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
详解python单元测试框架unittest
2018/07/02 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python多线程扫描端口(线程池)
2019/09/04 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
七匹狼男装广告词
2014/03/21 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
2014年标准化工作总结
2014/12/17 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电