1、首先说说页面静态化的优点:
①静态化html页面提高网站访问速度;
②有利于SEO收索引擎优化,百度谷歌等收索引擎优先收录静态页面,收录的更全;
③提高安全性,静态化页面减少sql注入的攻击;而且不用承担php页面的漏洞危险;
④不用每次打开页面都请求系统数据库,提升速度并且减轻系统负担
2、页面静态实现方法:
首先写一个静态模板页面temp.php;里面代码如下:
<?php include 'content.php';?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>我的模板</title>
</head>
<body>
<p>这是一个模板文件</p>
<p><?=$var;?></p>
<p>结尾</p>
</body>
</html>
这个页面是将要输出成html文件的模板文件;
再写一个文件内容的文件content.php:
里面随便给一个变量赋值即可,这里我写了一个时间戳,方便看到效果:
<?php
$var='时间='.time();
这里的内容应该是动态获取的, 这里只是为了实现页面静态话就没有连接数据库去取数据, 只是设了一个变量传递到页面;
最后是输入打印出静态html文件的代码index.php
<?php
$file = "file.html";//对应静态页文件
$expr = 5;//默认静态文件有效时间
if(file_exists($file)){
$file_ctime =fileatime($file);//文件创建时间
if($file_ctime+$expr>time()){//如果没过期
echo file_get_contents($file);//输出静态文件内容
exit;
}else{//如果已过期
unlink($file);//删除过期的静态页文件
ob_start();
include "temp.php";//加载对应的商品详情页模板
$content = ob_get_contents();//把详情页内容赋值给$content变量
file_put_contents($file,$content);//写入内容到对应静态文件中
ob_end_flush();//输出商品详情页信息
}
}else{
ob_start();
include "temp.php";//加载对应的商品详情页模板
$content = ob_get_contents();//把详情页内容赋值给$content变量
file_put_contents($file,$content);//写入内容到对应静态文件中
ob_end_flush();//输出商品详情页信息
}
?>
静态页面实现方法ok啦!