douping3891
2014-11-05 06:44
浏览 45
已采纳

使用PHP输出缓冲区压缩缓存的输出

By using this one line code ob_start('ob_gzhandler'); at the top of the page, the php output was about 11 kb according to Chrome console. When I tried to cache the output with the following code, I found the cached file was saved about 65kb. Is the bigger output size the trade off for caching? Is there any way to compress the cached output further? I have tried adding some htaccess rules for html compression but I don't think that helps.

$id = $_GET["id"];
$cachefile ="cache/p_{$id}.html";
if (file_exists($cachefile)) {
 include($cachefile);
 echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->";
 exit;
}
ob_start('ob_gzhandler');

$fp = fopen($cachefile, 'w'); // open the cache file for writing
fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
fclose($fp); // close the file
ob_end_flush(); 

图片转代码服务由CSDN问答提供 功能建议

在顶部使用这一行代码 ob_start('ob_gzhandler'); 根据Chrome控制台,该页面的php输出大约为11 kb。 当我尝试使用以下代码缓存输出时,我发现缓存的文件保存了大约65kb。 更大的输出大小是缓存的折衷吗? 有没有办法进一步压缩缓存的输出? 我已经尝试为html压缩添加一些htaccess规则,但我认为没有帮助。

  $ id = $ _GET [“id”]; 
 $ cachefile =“  cache / p _ {$ id} .html“; 
if(file_exists($ cachefile)){
 include($ cachefile); 
 echo”&lt;! -  Cached“.date('jS FYH:i',  filemtime($ cachefile))。“ - &gt;”; 
 exit; 
} 
ob_start('ob_gzhandler'); 
 
 $ fp = fopen($ cachefile,'w');  //打开缓存文件以写入
fwrite($ fp,ob_get_contents());  //将输出缓冲区的内容保存到文件
fclose($ fp);  //关闭文件
ob_end_flush();  
   
 
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题