知识大全 PHP页面静态化实现
Posted 知
篇首语:智慧是生成的,知识是学来的。。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP页面静态化实现相关的知识,希望对你有一定的参考价值。
PHP页面静态化实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
现在的网站一般都需要与数据库进行打交道 访问量较大时会对数据库造成很大的压力 将一些动态页面执行的结果进行缓存 当下次进行访问时 直接访问缓存可以减少对数据库的压力 同时也可以加快服务器的响应速度 缓存的结果可以存放到外存上 也可以存在内存中 在下一次访问该页面时直接从外存(内存)中直接读取上次的结果
[php]
<?php
//首先查看缓存文件
if(file_exists( l ))
//缓存时间为 分钟
if(time() filemtime( l )< * )
//将静态文件内容返回给客户端
$start_time = microtime();
echo 我是从静态文件中读取的数据: <br/> ;
echo file_get_contents( l );
$end_time = microtime();
echo 静态文件使用时间: ($end_time $start_time);
exit;
//如果是首次访问 或者是上次缓存的时间超过 分钟 则从数据库中读取数据
$host = ;
$user = root ;
$password = ;
//记录开始时间
$start_time = microtime();
mysql_connect($host $user $password);
mysql_select_db( mydb );
mysql_query( set names utf );
$sql = SELECT name address email FROM users ;
$resource = mysql_query($sql);
echo 我是从数据库中读取的数据:<br/> ;
ob_start();//打开输出缓冲
echo <table border= ><tr><th>姓名</th><th>地址</th><th>Email</th></tr> ;
//输出取得的信息
while($userInfo = mysql_fetch_assoc($resource))
echo <tr> ;
echo <td> $userInfo[ name ] </td> ;
echo <td> $userInfo[ address ] </td> ;
echo <td> $userInfo[ email ] </td> ;
echo </tr> ;
$end_time=microtime();
$str=ob_get_contents();//获取缓冲区的内容
ob_end_flush();
echo 从数据库读数据的时间: ($end_time $start_time);
file_put_contents( l $str);
?>
<?php
//首先查看缓存文件
if(file_exists( l ))
//缓存时间为 分钟
if(time() filemtime( l )< * )
//将静态文件内容返回给客户端
$start_time = microtime();
echo 我是从静态文件中读取的数据: <br/> ;
echo file_get_contents( l );
$end_time = microtime();
echo 静态文件使用时间: ($end_time $start_time);
exit;
//如果是首次访问 或者是上次缓存的时间超过 分钟 则从数据库中读取数据
$host = ;
$user = root ;
$password = ;
//记录开始时间
$start_time = microtime();
mysql_connect($host $user $password);
mysql_select_db( mydb );
mysql_query( set names utf );
$sql = SELECT name address email FROM users ;
$resource = mysql_query($sql);
echo 我是从数据库中读取的数据:<br/> ;
ob_start();//打开输出缓冲
echo <table border= ><tr><th>姓名</th><th>地址</th><th>Email</th></tr> ;
//输出取得的信息
while($userInfo = mysql_fetch_assoc($resource))
echo <tr> ;
echo <td> $userInfo[ name ] </td> ;
echo <td> $userInfo[ address ] </td> ;
echo <td> $userInfo[ email ] </td> ;
echo </tr> ;
$end_time=microtime();
$str=ob_get_contents();//获取缓冲区的内容
ob_end_flush();
echo 从数据库读数据的时间: ($end_time $start_time);
file_put_contents( l $str);
?>
users表中有三条记录 使用的是apache服务 测试结果如下
从数据库中读数据其平均执行时间为: s左右
直接读缓存文件期平均执行时间为:
cha138/Article/program/PHP/201311/20793相关参考