PHP使用缓存生成静态页面

http://www.cnblogs.com/lh460795/archive/2013/04/06/3003105.html

在apache / bin/ab.exe  可以做压力测试,该工具可以模拟多人,并发访问某个页面.

基本的用法

ab.exe –n 10000 –c 10

-n 表示请求多少次

-c 表示多少人

如果要测试php自己的缓存机制, 需要做配置.

php.ini 文件

display_errors=On

output_buffering=Off

error_reproting= 设置错误级别

看一段代码,使用缓存时,在发送文件头之前可以显示文字.

<?php

echo“yyy”;

header(“content-type:text/htm;charset=utf-8”);

echo“hello”;

?>

PHP缓存控制的几个函数:

 1 //PHP缓存控制的几个函数:
 2 //开启缓存 [通过php.ini,也可以在页面 ob_start()]
 3 ob_start();
 4 echo "yyy";
 5 header("content-type:text/htm;charset=utf-8");
 6 echo "hello";
 7 //ob_clean函数可以清空 outputbuffer的内容.
 8 //ob_clean();
 9 //ob_end_clean是关闭ob缓存,同时清空.
10 //ob_clean();
11 //ob_end_flush() 函数是 把ob缓存的内存输出,并关闭ob
12 //ob_end_flush();
13 //ob_end_flush() 函数是 把ob缓存的内存输出,
14 //ob_flush()函数是输出ob内容,并清空,但不关闭.
15 ob_flush();
16
17 echo "kkk";//=>ob缓存.
18
19 //header("content-type:text/htm;charset=utf-8");
20
21 //ob_get_contents() 可以获取output_buffering的内容.
22 //$contents=ob_get_contents();
23
24 //file_put_contents("d:/log.text",$contents);

下面来看一个实例,用缓存技术,"假如保存的缓存文件未超过30秒,则直接取出缓存文件":

 1 <?php
 2                 $id=$_GET[‘id‘];
 3                 $filename="static_id_".$id.".html";
 4                 $status=filemtime($filename)+30>time();//判断文件创建及修改时间距当前时间是否超过30秒
 5                 if(file_exists($filename)&&$status){
 6                     $str=file_get_contents($filename);
 7                     echo $str;
 8                 }else{
 9                     require_once "SqlHelper.class.php";
10                     $sqlHelper=new Sqlhelper();
11                     $arr=$sqlHelper->execute_dql2("SELECT * FROM news1 WHERE id=$id");
12                     if(empty($arr)){
13                         echo "数据为空";
14                     }else{
15                         /***缓存开始***/
16                         ob_start();//下面的内容将存到缓存区中,显示的内容都将存到缓存区
17                         echo $arr[0][‘tile‘];
18                         echo "<br/>";
19                         echo $arr[0][‘content‘];
20                         $content=  ob_get_contents();//从缓存中获取内容
21                         ob_end_clean();//关闭缓存并清空
22                         /***缓存结束***/
23                         file_put_contents($filename, $content);
24                         echo $content;
25                     }
26                 }
27
28
29             ?>

时间: 2024-10-25 15:58:52

PHP使用缓存生成静态页面的相关文章

接上篇,php生成静态页面,加上页面时间缓存

<?php require_once(dirname(__FILE__).'/include/config.inc.php'); ?> <?php $dosql->Execute("SELECT * FROM `#@__infolist` WHERE delstate='' AND checkinfo=true ORDER BY orderid DESC LIMIT 0,5"); //静态页面加缓存时间,如果页面已经存在或者没有超出时间,则默认加载静态页面,否则

PHP代码为什么不能直接保存HTML文件——&gt;PHP生成静态页面教程

1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件,这样反而会降低运行效率. 3.如果是需要PHP控制HTML代码的输出,比如需要PHP判断用户是否登陆,如果登陆则输出A,未登录则输出B.这就需要PHP来进行控制了.HTML不能实现这样的功能 PHP生成静态页面教程 ,一些基本的概念 一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可

学习MVC之租房网站(十二)-缓存和静态页面

在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和页面静态化. 使用缓存可以降低数据库的压力,而使用页面静态化则可以降低Web服务器的压力. 一 缓存 ASP.NET下可用的缓存为System.Web.Caching.Cache,保存在服务器内存中,不适用于服务器集群,虽然也用没用过集群,但现在的主流都使用NoSQL数据库来做缓存,典型的有Redis和Mem

PHP生成静态页面的方法

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法...."><LINKhref="http://www.php100.com//statics/st 在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化

比较详细PHP生成静态页面教程

一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的PHP解析器对 脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器.由此不难看出,在页面发送到浏览器后,P

PHP代码为什么不能直接保存HTML文件——&amp;gt;PHP生成静态页面教程

1.server会依据文件的后缀名去进行解析,假设是HTML文件则server不会进行语法解析.而是直接输出到浏览器. 2.假设一个页面中所有都是HTML代码而没有须要解析的PHP语法,则没有必要保存为PHP文件,这样反而会减少执行效率. 3.假设是须要PHP控制HTML代码的输出,比方须要PHP推断用户是否登陆,假设登陆则输出A,未登录则输出B.这就须要PHP来进行控制了.HTML不能实现这种功能 PHP生成静态页面教程 ,一些主要的概念 一,PHP脚本与动态页面. PHP脚本是一种serve

生成静态页面

<?php header('content-type:text/html;charset=utf-8'); //静态文件名称 $filename="jt.html"; //检测静态文件是否存在(存在情况) if(file_exists($filename)){ //每**秒更新静态文件 if(time()-filemtime($filename)>10){ echo "缓存时间到期,将重新生成静态页面 <br>"; //删除之前旧的静态文件

浅谈php生成静态页面

一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权限限制等,但是,对应一些我们经常频频使用的文件,比方说,开发的新闻发布系统,我们不希望很多用户都读取数据库才显示结果,这样一方面消耗了服务器的资源,另一方面占去了浏览者大量可贵的响应时间,所有,有了"静态页面话"的做法,当前很多网站都采用这种技术,一般都是由管理后台控制,或者生成html直

.net 生成 静态页面

.net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespace=System.IO %> <script runat="server"> protected override void OnInit (EventArgs e) { int id; try { id = int.Parse (Request.QueryString[