使用ob缓存实现真静态】的更多相关文章

实现页面的真静态化可以通过php的ob缓存来实现: 1.ob缓存认识 Ob就是output_buffering:输出缓存. 如果ob(函数ob_start())缓存打开,则echo的数据首先放在ob缓存中,当php代码执行完毕后,会把ob缓存的数据移到程序缓存,然后依次返回给浏览器缓存 也就是在请求一个php的过程中,实际经过了三个缓存: ob缓存(如果开启)—> 程序缓存—> 浏览器缓存. 注意:请求一个php一定要经过的两个缓存:程序缓存和浏览器缓存. 2.ob缓存重要的几个函数 ob_s…
之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的.今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下. 经他讲解后,才知道其实生成静态HTML页面很简单.PHP提供了专门的函数来实现. 以下整理出方法(实现生成html这应该只是其中一种方法): 通过php的ob缓存来实现 提高速度 1,通过php的ob缓存来实现 使用php的ob缓存实现页面静态化 修改php.ini配置文件 output_buffering=Off 1,缓存:…
利用php的ob缓存机制实现页面静态化 首先介绍一下php中ob缓存常用到的几个常用函数ob_start():开启缓存机制ob_get_contents():获取ob缓存中的内容ob_clean()清除ob缓存中的内容,但不关闭缓存ob_end_clean() 清除ob缓存中的内容,并关闭缓存ob_flush 清空缓存,输出内容,但不关闭缓存ob_end_flush 清空缓存,输出内容,并关闭缓存flush强制刷新输出缓存中的内容按照http协议的规定,回应内容不能在回应头之前输出,所以,如果在…
首先介绍一下php中ob缓存常用到的几个常用函数 ob_start():开启缓存机制 ob_get_contents():获取ob缓存中的内容 ob_clean()清除ob缓存中的内容,但不关闭缓存 ob_end_clean() 清除ob缓存中的内容,并关闭缓存 ob_flush 清空缓存,输出内容,但不关闭缓存 ob_end_flush 清空缓存,输出内容,并关闭缓存 flush强制刷新输出缓存中的内容 按照http协议的规定,回应内容不能在回应头之前输出,所以,如果在header()函数前面…
<?php //接收新闻id,传统的方法查询数据库并显示数据 $id=intval($_GET['id']); //先判断该新闻对于的静态页面是否存在,如果有,则直接返回,如果 //没有,则查询 $html_file="news-id".$id.".html"; //filemtime($html_file)+30>=time() 保证文件是30秒有效 if(file_exists($html_file) && filemtime($ht…
要求:使用伪静态完成简单的新闻查询! 伪静态是站在SEO的角度来看的,他对应的页面不是真正存在的(而真静态的页面是事先生成的),而是每次查询数据库得到的信息!…
<?php ob_start();//开启缓存 //要生成静态网页的内容开始 ?> 中间的html代码 <?php //要生成静态网页的内容结束 //把生成的静态内容保存到文件,而不是输出到浏览器 file_put_contents( 'index222.html', ob_get_clean() );…
ob的基本原则:如果ob缓存打开,则echo的数据首先放在ob缓存.如果是header信息,直接放在程序缓存.当页面执行到最后,会把ob缓存的数据放到程序缓存,然后依次返回给浏览器.下面我说说ob的基本作用:  1)防止在浏览器有输出之后再使用setcookie().header()或session_start()等发送头文件的函数造成的错误.其实这样的用法少用为好,养成良好的代码习惯.  2)捕捉对一些不可获取的函数的输出,比如phpinfo()会输出一大堆的HTML,但是我们无法用一个变量例…
之前的缓存和现在所说的页面静态化都是为网站提速的,如果是访问量小的小型网站可能不需要但是如果网站规模或访问量很大,那么页面静态化和缓存就会体现出各自的价值了下面先来了解下页面静态化的分类 页面静态化的分类: 1,按照形式: 1)真静态 2)伪静态 2,按照范围: 1)局部静态话(jquery,ajax) 2)全部静态化 页面静态化可以为网站提速还能进行seo优化,因为搜索引擎偏向抓取静态页面,针对不同的搜索引擎seo的标准可能不同.下面提供一个百度搜索引擎优化的链接 http://baiduse…
首先介绍一下php中ob缓存常用到的几个常用函数ob_start():开启缓存机制ob_get_contents():获取ob缓存中的内容ob_clean()清除ob缓存中的内容,但不关闭缓存ob_end_clean() 清除ob缓存中的内容,并关闭缓存ob_flush 清空缓存,输出内容,但不关闭缓存ob_end_flush 清空缓存,输出内容,并关闭缓存flush强制刷新输出缓存中的内容按照http协议的规定,回应内容不能在回应头之前输出,所以,如果在header()函数前面有内容输出,就会…