页面静态化的分类:
1,按照形式:两者的区别在于PHP生成静态页面的处理机制不同。
1)真静态
2)伪静态,就是url 重写
2,按照范围:
1)局部静态话(jquery,ajax)
2)全部静态化
在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、缓存等实现页面静态化。
PHP生成静态HTML页面的方法
1、利用PHP模板生成静态页面
PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化。
2、使用PHP文件读写功能生成静态页面
PHP生成静态页面实例代码
1. <?php
2. $out1 = "PHP网站静态化教程
3. 欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法
4. ";
5. $fp = fopen("leapsoulcn.html","w");
6. if(!$fp)
7. {
8. echo "System Error";
9. exit();
10. }
11. else {
12. fwrite($fp,$out1);
13. fclose($fp);
14. echo "Success";
15. }
16. ?>
3、使用PHP输出控制函数(Output Control)生成静态页面
输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。
PHP生成静态页面实例代码
1. <?php
2. ob_start();
3. echo "".
4. "".
5. "PHP网站静态化教程 ".
6. "".
7. "欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法".
8. "";
9.
10. $out1 = ob_get_contents();
11. ob_end_clean();
12. $fp = fopen("leapsoulcn.html","w");
13. if(!$fp)
14. {
15. echo "System Error";
16. exit();
17. }
18. else
19. {
20. fwrite($fp,$out1);
21. fclose($fp);
22. echo "Success";
23. }
24. ?>
实例如下
<?php
//首先查看缓存文件
if(file_exists("static.html")){
//缓存时间为3分钟
if(time()-filemtime("static.html")<60*3){
//将静态文件内容返回给客户端
$start_time = microtime();
echo "我是从静态文件中读取的数据:"."
";
echo file_get_contents("static.html");
$end_time = microtime();
echo "静态文件使用时间:".($end_time-$start_time);
exit;
}
}
//如果是首次访问,或者是上次缓存的时间超过3分钟,则从数据库中读取数据
$host = "127.0.0.1";
$user = "root";
$password = "123456";
//记录开始时间
$start_time = microtime();
mysql_connect($host,$user,$password);
mysql_select_db("mydb");
mysql_query("set names utf8");
$sql = "SELECT name,address,email FROM users";
$resource = mysql_query($sql);
echo "我是从数据库中读取的数据:
";
ob_start();//打开输出缓冲
echo "姓名 地址 Email ";
//输出取得的信息
while($userInfo = mysql_fetch_assoc($resource)){
echo "";
echo "".$userInfo['name']." ";
echo "".$userInfo['address']." ";
echo "".$userInfo['email']." ";
echo " ";
}
$end_time=microtime();
$str=ob_get_contents();//获取缓冲区的内容
ob_end_flush();
echo "从数据库读数据的时间:".($end_time-$start_time);
file_put_contents("static.html",$str);
?>
转载于:https://my.oschina.net/ting22055/blog/485806
版权声明:如无特殊标注,文章均来自网络,本站编辑整理,转载时请以链接形式注明文章出处,请自行分辨。本文链接:https://www.shbk5.com/dnsj/73763.html