PHP静态化

概念
PHP的静态化分为:纯静态化和伪静态化;其中纯静态化又分为:完全静态化和局部静态化。

  • 纯静态化:是将PHP生成的生成的动态页面保存为静态的HTML文件,当用户访问该静态页面的时候,会先检查该页面是否有缓存,有则直接访问页面,没有则需要请求PHPserver服务生成页面。
    1) 局部静态化:是在生成的静态文件中,还有局部的数据还是通过Ajax技术动态获得。
    1)完全静态化:即不存在动态获取数据的情况,所有内容都来自静态的HTML页面。

  • 伪静态化:其实质还是动态访问其实质还是动态生成数据。其通过改写访问地址,能够通过URL的PATHINFO模式来改动它。让它看上去更像一个静态页面。即是url 重写

PHP中ob缓存常用的函数

ob_start():开启缓存机制

ob_get_contents():获取ob缓存中的内容

ob_clean()清除ob缓存中的内容,但不关闭缓存

ob_end_clean() 清除ob缓存中的内容,并关闭缓存

ob_flush 清空缓存,输出内容,但不关闭缓存

ob_end_flush 清空缓存,输出内容,并关闭缓存

实例

<?php
   
    $id=$_REQUEST['id'];
     
    //判断缓存文件是否存在,如果存在,直接输出
    if(file_exists('content'.$id.'.html')){
      echo file_get_contents('content'.$id.'.html');
      return;
    }
     
    //开启缓存机制
    ob_start();
     
    //到数据库中查询所需要的内容
    $conn=mysql_connect("localhost","root","root");
    mysql_select('db');
    mysql_query('set names utf8');
     
    $sql="select content from table_name where id=$id";
    $res=mysql_query($sql);
    $row=mysql_fetch_assoc($res);
    $content=$row[0];
     
    mysql_free_result($res);
    mysql_close($conn);
    echo $content;
    //将输出的内容保存到文件中,形成静态页面,在下次访问的时候,直接读取输出
    file_put_contents('content'.$id.'.html',ob_get_contents());
?>

HTML静态化的好处

  • 减轻服务器负担,浏览网页无需调用系统数据库。
  • 有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;
  • 加快页面打开速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
  • 网站更安全,HTML页面不会受php程序相关漏洞的影响;观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。数据库出错时,不影响网站正常访问。
  • 数据库出错时,不影响网站的正常访问。
    最主要是可以增加访问速度,减轻服务器负担,当数据量有几万,几十万或是更多的时候你知道哪个更快了. 而且还容易被搜索引擎找到。生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值