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 Mssql操作简单封装支持存储过程
Dec 11 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
微信支付开发发货通知实例
Jul 12 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
PHP会话控制实例分析
Dec 24 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
Yii框架的redis命令使用方法简单示例
Oct 15 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
极简主义法编写JavaScript类
2017/11/02 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
Python struct模块解析
2014/06/12 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
python中np是做什么的
2020/07/21 Python
python把一个字符串切开的实例方法
2020/09/27 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
就业协议书范本
2014/04/11 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
个人工作能力自我评价
2015/03/05 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
工作建议书范文
2019/07/08 职场文书