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 遍历XP文件夹下所有文件
Nov 27 PHP
php中几种常见安全设置详解
Apr 06 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
php动态函数调用方法
May 21 PHP
Zend Framework动作助手Json用法实例分析
Mar 05 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 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
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP实现微信退款功能
2018/10/02 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
img标签中onerror用法
2009/08/13 Javascript
Javascript var变量隐式声明方法
2009/10/19 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
javascript基本算法汇总
2016/03/09 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
JS二分查找算法详解
2017/11/01 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
Python动态加载模块的3种方法
2014/11/22 Python
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
巴西购物网站:Onofre Agora
2020/06/08 全球购物
旷课检讨书1000字
2014/02/14 职场文书
家长寄语大全
2014/04/02 职场文书
大学学生会辞职信
2015/05/13 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
MySQL常用慢查询分析工具详解
2022/08/14 MySQL
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript