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 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
解析php取整的几种方式
Jun 25 PHP
解析php扩展php_curl.dll不加载的解决方法
Jun 26 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
PHP中include和require的区别实例分析
May 07 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
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python中的集合类型知识讲解
2015/08/19 Python
Python中字符串的处理技巧分享
2016/09/17 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python turtle 绘制太极图的实例
2019/12/18 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
文明礼仪小标兵事迹
2014/01/12 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
出国签证在职证明范本
2014/11/24 职场文书
小学教师求职信范文
2015/03/20 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
Nginx 匹配方式
2022/05/15 Servers