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 ?>

PHP使用缓存生成静态页面的更多相关文章
- 接上篇,php生成静态页面,加上页面时间缓存
<?php require_once(dirname(__FILE__).'/include/config.inc.php'); ?> <?php $dosql->Execut ...
- 浅谈php生成静态页面
一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...
- .net 生成 静态页面
.net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespac ...
- 比较详细PHP生成静态页面教程
一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客 ...
- PHP生成静态页面的方法
在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存 等实现页面静态化,今天就以PHP实例教程形 ...
- PHP代码为什么不能直接保存HTML文件——>PHP生成静态页面教程
1.server会依据文件的后缀名去进行解析,假设是HTML文件则server不会进行语法解析.而是直接输出到浏览器. 2.假设一个页面中所有都是HTML代码而没有须要解析的PHP语法,则没有必要保存 ...
- [dedecms]隐藏栏目不生成静态页面
重点文件在:/data/cache/inc_catalog_base.inc.php文件,里面存放的是栏目ID 先找到 /dede/sys_cache_up.php(后台更新缓存的地方),找到里面的U ...
- 学习MVC之租房网站(十二)-缓存和静态页面
在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...
- PHP代码为什么不能直接保存HTML文件——>PHP生成静态页面教程
1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件 ...
随机推荐
- SQL2008-分页显示3种方法
方法1: 适用于 SQL Server 2000/2005/2008 SELECT TOP 10 * FROM YieldRole WHERE id NOT IN ( SELECT TOP (10*( ...
- 单机c/s软件如何让老板在异地看销售营业报表
单机软件,让人的感觉就只能在本地使用. 单机版c/s软件,数据存放在本机上,老板想要查看销售报表的话,需要跑到公司的那台电脑上才能查看,这对于在外面四处跑业务的老板来说,基本上是不可能做到的.但每天的 ...
- PTA 5-14 电话聊天狂人 (25分)
给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数NN(\le 10^5≤105),为通话记录条数.随后NN行,每行给出一条通话记录.简单起见,这里只列出 ...
- android的ListView做表格添加圆角边框
边框,圆角,都可以实现的 在drawable目录下添加view_yuan_morelist.xml,设置控件的边框代码.如下: <?xml version="1.0" enc ...
- UIAlertController 简单修改title以及按钮的字体颜色
苦逼的开发者,最终败给了一个任性的UI,系统原生UIAlertController的按纽颜色必须改.于是,开始了不归路.之前的版本是自己用view写的一个仿系统UIActionSheet,动画感觉都挺 ...
- android 基站定位
package cn.LocationStation; import java.io.BufferedReader; import java.io.InputStream; import java.i ...
- Javascript call与apply记录
[注]:记录自己对javascript中call与apply的见解 总会有些东西会被人拿出来重复的写来写去,为何? 只是因为自己感觉不够了解,所谓好记性不如烂笔头,并且在写的同时也会或多或少的收获到一 ...
- ajax表单提交插件jquery.form.js的运用
该插件提交的数据包含上传的图片. 1.先导入jquery.form.js 2.form表单的元素: <form id="form2_form" method="po ...
- SAP ABAP MARD和MARDH计算逻辑
mard里记载的是当前库存的数量,但是期间并不一定是当月.比如你物料4月一整月都没有库存数量变化(没收没发),那么5月初你看mard里的条目期间数还是4月而非5月. 当某个期间发生货物移动的时候,系统 ...
- [Effective C++ --009]确定对象被使用前已先被初始化
在确保对象在使用前已先被初始化这一条款的编码实践中,作者为我们总结了三条经验,它们分别是: ------------------------------------------------------ ...