zoukankan      html  css  js  c++  java
  • PHP页面静态化(转)

    在很多地方都看到有PHP整站静态化的东东,怪唬人的。。其实,你会静态化一个页面,那么别说整站了,想静态化多少都可以。所以关键是,首先要知道怎么静态化一个页面,了解静态化的原理是关键。。

    这里就说下我个人的理解了。
     
    首先,需要知道几个函数。
    ob_start();
    ob_end_clean();
    ob_get_contents();
    file_put_contents();//这个可以用fopen,fwrite代替
    file_exists();等函数。
    不知道这些函数的就自己去翻手册,这里就不多讲解了。
    OK。下面就是生成的过程。。
     
    假设你需要把当前的页面,生成成a.html。那么
     
    ------------------------------------------------------
    //现在这里留个位置,,,,,,,,,,,,,,,,,,,,记住些逗号~~~
    //首先需要使用
    ob_start();//这个的作用就是先不让当前动态页面的内容发送到客户端。
    //既然不让发送了,那么内容怎么获取,如下。
    $content=ob_get_contents();
    //$content就是你当前页面的所有内容。。暂时被保存在服务器内存中。
    //然后获取内容之后,就可以把内容释放出来了
    ob_end_clean();
    //好,把前面的内容直接写入文件就是了。这也是生成静态页面的关键
    file_put_contents("a.html",$content);
    //以前已经OK了。
    //看看你的目录里是不是已经有a.html了。
    //记住这些句号。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
     
    ------------------------------------------
     
    生成静态页之后,很多地方的方法就是直接重定向到新的页面。a.html-----header("Location:a.html")。语句写在很多句号那里
    其实我个人认为不必要了。因为当前页面已经动态生成,干嘛在重定向一次呢。。
     
    好了,问题来了。那么生成的静态页面如何使用呢。
     
    嗯,回头去看很多逗号的地方。
    我们在当前这个页面的开头地方
    我们开始就进行一个判断。判断a.html是否存在。
    如果存在就重定向到a.html就行了。代码如下
     
    --------------------------------------------
    if(file_exists("a.html"))
    {
       $time = time();
      
       //这个就是判断下静态页面生成时间,我们可能需要定时更新静态页面--毕竟动态页面是要变化的么。
       if($time - filemtime("a.html") < 30*60)
       {
       header("Location:a.html");
       }
    }
     
    ------------------------------------------------------
    好了。以上基本上就可以完成的生成静态页面了。
     
     
    当然,如果是要整站静态页面,以及静态文件规则;就得自己去设计了---不可能所有的静态页面文件都叫a.html的么。
     

    我们可以根据当前动态页面传递的值来进行命名等。~

  • 相关阅读:
    屯【水】题计划
    【BZOJ2157】旅游
    【BZOJ2143】飞飞侠
    【BZOJ1036】[ZJOI2008]树的统计Count
    flask基础
    数据分析之Matplotlib
    pycharm 快捷键
    数据分析之pandas02
    数据分析之pandas01
    隐匿函数,二分法 冒泡排序
  • 原文地址:https://www.cnblogs.com/tianshuowang/p/4749159.html
Copyright © 2011-2022 走看看