在很多地方都看到有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. java--对象比较器

    在实际的项目中,经常会遇到排序问题,对于基本数据类型java支持Arrays.sort()和Collection.sort()对集合进行排序,但是对用户自定义类型排序呢?java给我们提供了两种解决方 ...

  2. MyBatis第一个项目示例

    1.创建一个Java project,JikeBook 2.添加项目所需的依赖包 如 mybatis-3.2.8.jar,是实现mybatis功能所必需的依赖包 mysql-connector-jav ...

  3. css hack 兼容性

    做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方式来 达到大家要求的页面表现.我个人是不太推荐使用hack的,要知 ...

  4. mysql数据库优化[千万级查询]

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  5. 我的SD卡乱码解决方案

    转载请注明出处.chendesheng1988是原作者. 问题描述:射频模块读取证件信息后,串口读取的信息存到SD卡,存进去发现汉字是乱码. 解决方案:使用函数WideCharToMultiByte搞 ...

  6. 【C#基础】实现URL Unicode编码,编码、解码相关整理

    1.Unicode编码 引用系统 System.Web using System.Web; string postdata = "SAMLRequest=" + HttpUtili ...

  7. Java 多字段排序Comparator(兼容Date,Integer,Doubel,Long)

    Java 反射类:ReflexUtil public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexU ...

  8. Android Fragment 详解(一)

    Android从3.0开始引入fragment,主要是为了支持更动态更灵活的界面设计,比如在平板上的应用.平板机上拥有比手机更大的屏幕空间来组合和交互界面组件们.Fragment使你在做那样的设计时, ...

  9. JavaScript学习(2)

    时间就像海绵里的水,要挤总还是有的,所以在最近不是太忙的时间里,我选择了挤时间,一点点的挤出了大把的时间,于是乎便迎来了我对javascript的第二阶段的学习,首先说下, 说起JavaScript大 ...

  10. Vim的设置和使用——编程者

    一.第一个插件:Ctags 当我们看到一个陌生的变量或者函数,我们总想知道它的含义,因此,快速找到它的定义很重要.Ctags插件中的"Ctrl+]"快捷键就可以做到. 二.教你高效 ...