查看: 4953|回复: 0
打印 上一主题 下一主题

PHP之heredoc模板技术

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-4 21:59:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
php程序界有很多种模板技术和方法;但使用起来大多不太方便。  
我经过思考和测试,发明了一种简单而巧妙的方法。  

我的目标是:把html从php中分离出来,并且html中不包含php控制程序。  

在php4中,提供了print<<< HTML 功能。举例如下:
$data="这里是内容";  
print<<< HTML  
$data  
HTML;  
?>  


输出:这里是内容。  
另外一方面,php中有函数eval()。它能够执行php代码。我们就结合上述  
知识来建立一个通用的函数getTpl().如下:  

下面是demo.php  
<?php  

function getTpl($tplname,$EXT='.htm')  
{
        extract($GLOBALS);
        $path=$tplname.$EXT;
        eval("print<<< EOT\n".readfn($path)."\nEOT;\n");  
}  

function readfn($fn)  
{
        $fp=fopen($fn,"rb");
        return fread($fp,filesize($fn));
        fclose($fp);
}

$title='这是标题';  
$data='这里是内容';  

getTpl('demo');  

?>


下面是demo.htm
<html>  
<head>  
<title> $title </title>  
</head>  

<body>  
<b>$title</b>  
<p>$data  
</body>  
</html>  


经过这样的处理后,在demo.htm中只有php要替换的变量,而没有任何其他php的多余代码了。  
这样以来,外观和程序逻辑就得以完全分离,为网站的修改和后期维护提供了方便之门!  
注:以上方法分离了php和html,代表了显示和逻辑的分离。但是以失去复杂控制为代价的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表