脚本宝典收集整理的这篇文章主要介绍了如何通过PHP提供以前GZipped缓存的HTML文件?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个为我的网站开发的缓存,其中我目前检查每个页面请求,看看是否有一个静态的缓存版本的页面,然后,如果浏览器支持,我gzip页面并将其交回浏览器.
现行守则
$hash = md5('http://mydomain.com'.$url); $fl = substr($url,1,1); if(file_exists('/home/myaccount/public_html/cache/'.$fl.'/'.$hash.'.html') && $_GET['cache'] != 'off' && $fl!=''): ob_start("ob_gzhandler"); header('Content-type: text/html; charset=utf-8'); include 'cache/'.$fl.'/'.$hash.'.html'; elseif(file_exists('/home/myaccount/public_html/cache/'.$hash.'.html') && $_GET['cache'] != 'off'): ob_start("ob_gzhandler"); header('Content-type: text/html; charset=utf-8'); include 'cache/'.$hash.'.html'; else: $_SERVER['REQUEST_URI'] = str_replace('?cache=off','',$_SERVER['REQUEST_URI']); include 'interface/index.PHP'; endif;
期望的变化
我想更改它,以便服务器上的文件已经gzip压缩.我已经知道如何gzip文件并在服务器上设置它们.但是,我想知道如何修改脚本的这一部分,以便检查浏览器是否支持gzip,然后只需将文件的gzip版本交给他们.如果不支持,它将解压缩并将其交还给服务器.
目的
这将完成几件事.首先,它将在服务器上使用更少的空间来存储文件.其次,由于大多数浏览器都接受gzip压缩格式,因此不必在每个页面请求上对它们进行gzip,它将缩短几毫秒.相反,它只需要为少数不受支持的浏览器解压缩文件.第三,这是一个了解PHP如何使用gzip压缩文件的机会.
$hash = md5('http://mydomain.com'.$url); $fl = substr($url,1); if(file_exists('/home/myaccount/public_html/cache/'.$fl.'/'.$hash.'.html.gz') && $_GET['cache'] != 'off' && $fl!=''): if (strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'],"gzip")): header("X-Compression: gzip"); header("Content-Encoding: gzip"); readfile('cache/'.$fl.'/'.$hash.'.html.gz'); else: $gz = gzopen ('cache/'.$fl.'/'.$hash.'.html.gz',"r"); $contents = gzread ($gz,1000000); echo $contents; endif; elseif(file_exists('/home/myaccount/public_html/cache/'.$hash.'.html.gz') && $_GET['cache'] != 'off'): if (strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'],"gzip")): header("X-Compression: gzip"); header("Content-Encoding: gzip"); readfile('cache/'.$hash.'.html.gz'); else: $gz = gzopen ('cache/'.$hash.'.html.gz',1000000); echo $contents; endif; else: $_SERVER['REQUEST_URI'] = str_replace('?cache=off',$_SERVER['REQUEST_URI']); include 'interface/index.PHP'; endif;
以上是脚本宝典为你收集整理的如何通过PHP提供以前GZipped缓存的HTML文件?全部内容,希望文章能够帮你解决如何通过PHP提供以前GZipped缓存的HTML文件?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。