外星人好还是雷神好:PHP模板技术的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 03:15:46
下面这样一段介绍,我想问该怎么理解,用PHP模板技术的网页,当页面活动内容替换时,生成的页面是静态的吗?利于被搜索引擎收录吗?

【PHP模板发展自Perl的Template。剥开神秘的面纱,模板技术的核心概念简单得令人心跳:要将你的美工页面指定为模板文件,只需将页面中活动的内容如数据库输出,用户交互等部分定义成形式为的变量放在模板文件中相应的位置,当用户浏览时,由PHP程序文件打开该模板文件,将模板文件中定义的变量进行替换,当然,替换成对应的数据库输出或者用户交互等动态生成内容。

模板能够改善网站的结构,其特点有:

可以在几秒钟改变你的整个站点的外观;
抽象程序设计,没有垃圾HTML代码;
设计人员不需要关心全部的"模糊"代码;
令人惊讶地快;
更容易重用旧的模版(对普通的表单而说)

现在在PHP中应用最多的模板有两种,Phplibtemplate和Fasttemplate】

phplib是一个轻量级的模板,其中的Template可以实现生成静态结果,你只要使用一个能将结果存成文件,并能按更新时间生成文件的cache就可以架构一个静态站点.fast这个不常用,smarty/zend frame等都是比较强大的框架,含有template类,技术比较成熟.

一般的模板技术Phplibtemplate和Fasttemplate都不生成静态网页,他们仅是为了实现视图和应用逻辑的分离。smart 模板自建了缓存机制,但也不是静态页面缓存。

据上所述,此模板并不会生成静态文件,只是在用户浏览时,调用模板并动态的替换相应位置并显示给用户,如:

-----------------------------
template.html 内容如下:

<html>
<body>
当前时间为:{$time},我代表{$auther}感谢你的访问。
</body>
</html>

--------------------------------------
index.php 内容如下:

<?php
$content = file_get_contents('template.html');
$content str_replace('{$time}', date('Y-m-d H:i:s'), $content);
$content str_replace('{$auther}', '星夜迷人', $content);
echo $content;
?>

-----------------

当用户访问index.php的时候,就会显示:

----------------------------
当前时间为:2006-07-11 18:10:40,我代表星夜迷人感谢你的访问。

---------------------------------------

这只是一个极简单的例子,还可以使用正则表式之类的进行更复杂的替换,你可以去看看smarty,这是当今最流的模板,当然这个就很复杂了。。。