在很多地方都看到有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的么。
 

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

PHP页面静态化(转)的更多相关文章

  1. 页面静态化技术Freemarker技术的介绍及使用实例.

    一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 ...

  2. JSP页面静态化

    Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态 ...

  3. 大型网站提速关键技术(页面静态化,memcached,MySql优化)(三)

    页面静态化的技术实现有两种方式 使用PHP自己的缓存机制 先说明一下OB缓存的机制. ob1.php 代码:说明的ob的各个用法->项目中 ☞ 如何打开ob缓存 ①     配置php.ini ...

  4. 大型网站提速关键技术(页面静态化,memcached,MySql优化)(二)

    一:页面静态化 几个概念: 静态网址:(比如:http://localhost/abc.html) 特点:1.利用seo(search engine optimization) 搜索引擎优化;2:访问 ...

  5. 大型网站提速关键技术(页面静态化,memcached,MySql优化)(一)

    一:关键技术介绍: 衡量是否为大型网站的要素: A:PV值(page views 页面浏览量) 访问量大: 带来的问题:1:流量大 -->解决方案:增加带宽,优化程序(视频和图片较浪费带宽,尽量 ...

  6. php页面静态化技术;学习笔记

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. C# MVC 页面静态化导致的问题

    在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.htm ...

  8. Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

    模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...

  9. ASP.NET MVC使用SSI来实现页面静态化

    页面静态化分为两种:伪静态和真静态,这里主要介绍的是真静态. 进入正题之前先简单介绍一下SSI和shtml: 1).SSI是Server Side Include的简称(服务器端嵌入) 2).shtm ...

  10. php页面静态化

    如何优化页面响应时间: 动态页面静态化 优化数据库 使用负载均衡 使用缓存 如果页面中的一些内容不经常改动,可以使用动态页面静态化.好处是:减少服务器脚本的计算时间:降低服务器的响应时间. 1.动态U ...

随机推荐

  1. C#调用PowerShell脚本

    今天通过一个小例子,学习了C#如何调用PowerShell脚本文件的Function以及传参. private bool CallPowershell(string outputFile) { str ...

  2. js高级教程第3版笔记(我的理解)陆续更新中

    js基础语法'use strict'(严格模式)定义变量var object;只声明未赋值,默认值为undefined;var object1=值;声明并赋值;function fun(a){这样也叫 ...

  3. security Export/import

    export [-k keychain] [-t type] [-f format] [-w] [-p format] [-P passphrase] [-o outfile] Export one ...

  4. 程序猿的道路~~(How to be a programmer?)

    程序猿的道路其实很简单,主要就是三条: Learn (学习), Practice(练习), Summary(总结) 推荐给新手程序猿两篇文章: 给程序员新手的一些建议 程序员技术练级攻略 当然了,整个 ...

  5. HDU4662+无

    把目标中的 U 转化为 I. 又因为 I的个数是有规律的:1 2 4 8 16 ...再结合可以取消 6 12 18 ...个I...得解 #include<string.h> #incl ...

  6. ZOJ 3511 不相交切切多边形 线段树求最大边数

    题意: n多凸边形 m刀 (把n切m刀,问切完后的图形中 最多的边数 是多少) 切a点-b点 数据保证切的刀不会相交 思路: 2点之间的剩余点数就是边数, 把a-b距离 近 排序 切完一刀就统计一下切 ...

  7. 输入内容, 列出可选的项: QComboBox

    #include "widget.h" #include "ui_widget.h" #include <QtGui/QCompleter> #in ...

  8. $_SERVER变量 以及 PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题

    PHP $_SERVER['PHP_SELF'] $_SERVER['PHP_SELF'] 表示当前 php 文件相对于网站根目录的位置地址,与 document root 相关. 假设我们有如下网址 ...

  9. USB2.0速度识别

    我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device).因此,如果高速设备挂到USB1. ...

  10. 解决Android SDK Manager下载太慢问题(转)

    1.打开android sdk manager 2.打开tool->options,如图所示 3.将Proxy Settings 里的HTTP Proxy Server和HTTP Proxy P ...