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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
基于MySQL体系结构的分析
May 02 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
php调用nginx的mod_zip模块打包ZIP文件
Jun 11 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
分析python切片原理和方法
2017/12/19 Python
python写入已存在的excel数据实例
2018/05/03 Python
Python实现的特征提取操作示例
2018/12/03 Python
Python基础教程之异常详解
2019/01/10 Python
Python实现爬取并分析电商评论
2020/06/19 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
Python生成器generator原理及用法解析
2020/07/20 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
个人自我评价和职业目标
2014/01/24 职场文书
政府门卫岗位职责
2014/04/29 职场文书
项目经理任命书
2014/06/04 职场文书
党性教育心得体会
2014/09/03 职场文书
遗失说明具结保证书
2015/02/26 职场文书
个人求职自荐信范文
2015/03/06 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
党员理论学习心得体会
2016/01/21 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书