||||| 0 I Like It! |||||

动态页面和静态页面的区别大家都应该很清楚了:动态页面需由WEB服务器的PHP解析器进行解析,而且通常还需连接数据库,进行数据库存取操作,然后才能形成HTML语言信息包;而静态页面,无须解析,无须连接数据库,直接发送,可大大减轻服务器压力,提高服务器负载能力,大幅提供页面打开速度和网站整体打开速度。当然静态页面也有部分缺点,不能动态地对请求进行处理,服务器上必须确实存在该文件。

一、模板与模板解析
1、模板即尚未填充内容html文件。例如:
1.html

<html>
<head>
    <title>{*title*}</title>
</head>
<body>
    {*file*}
</body>
</html>

2、模板解析即是把PHP处理后的结果填入HTML中的待替换内容。例如:
1.php

<?php
$title='这是个测试模板';
$file='This is my first templet<br />author:xinphome@gamil.com';

$fp=fopen("1.html","r");
$content=fread($fp,filesize("1.html"));
$content=str_replace("{*file*}",$file,$content);
$content=str_replace("{*title*}",$title,$content);
echo $content;
?>

二、PHP生成静态页面
PHP生成静态页面并不是指PHP的动态解析然后输出HTML页面到浏览器,而是指用PHP创建HTML页面。PHP中有一个文件操作函数fopen,即打开文件,若文件不存在,则可以尝试创建。这即是PHP可以用来创建HTML文件的理论基础。只要用来存放HTML文件的文件夹有写权限(针对UNIX系统而言,权限要定义为0777,Win系统无须考虑),即可创建文件。例子和上面类似,我们可以在指定目录下生成一个名为created_2.html的静态文件,如下:
1、模板文件:
2.html

<html>
<head>
    <title>{*title*}</title>
</head>
<body>
    {*file*}
</body>
</html>

2、PHP处理文件:
2.php

<?php
$title='我的第二个测试模板';
$file='Lensen\'s Space<br />author:xinphome@gmail.com';

$fp=fopen('2.html','r');
$content=fread($fp,filesize('2.html'));
$content=str_replace('{*file*}',$file,$content);
$content=str_replace('{*title*}',$title,$content);

//echo $content;

$filename='created_2.html';
$handle=fopen($filename,'w');    //打开文件指针,没有则创建

if(!is_writeable($filename)) {
    die('文件;'.$filename.'不可写,请检查其属性后重试!');
}

if(!fwrite($handle,$content)) {
    die("生成文件".$filename."失败!");
}

fclose($handle);    //关闭指针
die("创建文件".$filename."成功!");

?>