知识大全 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

相关参考