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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
PHP4在Windows2000下的安装
Oct 09 PHP
php中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
window.open不被拦截的实现代码
2012/08/22 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
Python 正则表达式操作指南
2009/05/04 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
高中生学习生活的自我评价
2013/11/27 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
你真的会用Mysql的explain吗
2022/03/31 MySQL