»¶ÓÄú·ÃÎÊÎÒ°®IT¼¼ÊõÍø£¬½ñÌìС±àΪÄã·ÖÏíµÄ±à³Ì¼¼ÊõÊÇ£º¡¾ÓÃPHPÀ´ÊµÏÖÒ³ÃæGZIPµÄѹËõÊä³ö½Ì³Ì¡¿£¬ÏÂÃæÊÇÏêϸµÄ·ÖÏí£¡
ÓÃPHPÀ´ÊµÏÖÒ³ÃæGZIPµÄѹËõÊä³ö½Ì³Ì
GZIP£¨GNU-ZIP£©ÊÇÒ»ÖÖѹËõ¼¼Êõ¡£¾¹ýGZIPѹËõºóÒ³Ãæ´óС¿ÉÒÔ±äΪÔÀ´µÄ30%ÉõÖÁ¸üС¡£ÕâÑùÓû§ä¯ÀÀµÄʱºò¾Í»á¸Ð¾õºÜˬºÜÓä¿ì£¡
ҪʵÏÖGZIPѹËõÒ³ÃæÐèÒªä¯ÀÀÆ÷ºÍ·þÎñÆ÷¹²Í¬Ö§³Ö£¬Êµ¼ÊÉϾÍÊÇ·þÎñÆ÷ѹËõ£¬´«µ½ä¯ÀÀÆ÷ºóä¯ÀÀÆ÷½âѹ²¢½âÎö¡£ä¯ÀÀÆ÷ÄDZ߲»ÐèÒªÎÒÃǵ£ÐÄ£¬ÒòΪÏÖÔÚ¾ø´ó¶àÊýä¯ÀÀÆ÷¶¼Ö§³Ö½âÎöGZIP¹ýµÄÒ³Ãæ¡£ÎÒÃÇÖ»Òª°ÑÒ³ÃæÔÚ·þÎñÆ÷¶ËѹËõÔÙÊä³öµ½ä¯ÀÀÆ÷¾ÍÐÐÁË¡£
ÓеãÂÞ࣬ÏÂÃæËµÕýÊ£º
ÕýÈçÒªÖÆ×÷ѹËõ±ý¸É£¬ÏÈÒªÄõ½ÔÁÏ£¬ÒªÑ¹ËõÒ»¸öÒ³Ãæ£¬Ê×ÏÈÒª»ñµÃÒªÊä³öµÄÄÚÈÝ¡£PHPÖеÄob_start()£¨ob=>outputbuffer£©º¯Êý¿ÉÒÔʵÏÖÕâ¸ö¹¦ÄÜ£¬Ëü¿ÉÒ԰ѳÌÐòÀï×¼±¸Êä³öµÄÄÚÈÝÏȷŵ½Ò»¸ö½Ð×ö“»º³åÇø”µÄµØ·½£¬µ±È»£¬Äã¿ÉÒÔÀí½âÎªÖÆ×÷ѹËõ±ý¸ÉµÄÔÝʱ·ÅÔÁϵŤ×÷̨¡£
Õâ¸öº¯ÊýÒ»¶¨ÒªÔÚÒ³ÃæÊä³ö֮ǰʹÓã¬ËùÒÔÒ»°ã°ÑËü·ÅÔÚ´úÂëµÄ×î¶¥¶Ë¡£ÒòΪËü¾ÍÏñÊÇÒ»¸ö¹¤×÷̨£¬ËùÒÔÄãÒªÔÚÔÁϵ½À´Ö®Ç°¾ÍҪ׼±¸ºÃËü£¬·ñÔòÔÁÏÀ´ÁËûµØ·½·Å£¬»á³öÎÊÌâµÄ¡£ÓÃob_start()µÃµ½ÒªÑ¹ËõµÄÒ³ÃæÖ®ºó£¬ÎÒÃǾͿÉÒÔÖÆ×÷ѹËõ±ý¸ÉÁË£¬²»¶Ô£¬Ó¦¸ÃÊÇ¿ÉÒÔѹËõÒ³ÃæÁË£¡²»¹ýºÃÏñ»¹È±ÉÙһ̨ѹËõ»ú£¬EZ£¬ÎÒÃÇÓÃPHP´øµÄzlibÀ©Õ¹×öһ̨£º
functionob_gzip( content)// content¾ÍÊÇҪѹËõµÄÒ³ÃæÄÚÈÝ£¬»òÕß˵±ý¸ÉÔÁÏ
{
if(!headers_sent()&&//Èç¹ûÒ³ÃæÍ·²¿ÐÅÏ¢»¹Ã»ÓÐÊä³ö
extension_loaded("zlib")&&//¶øÇÒzlibÀ©Õ¹ÒѾ¼ÓÔØµ½PHPÖÐ
strstr( _SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))//¶øÇÒä¯ÀÀÆ÷˵Ëü¿ÉÒÔ½ÓÊÜGZIPµÄÒ³Ãæ
{
content=gzencode( content."\n//´ËÒ³ÒÑѹËõ",9);Ϊ׼±¸Ñ¹ËõµÄÄÚÈÝÌùÉÏ“//´ËÒ³ÒÑѹËõ”µÄ×¢ÊͱêÇ©£¬È»ºóÓÃzlibÌṩµÄgzencode()º¯ÊýÖ´Ðм¶±ðΪ9µÄѹËõ£¬Õâ¸ö²ÎÊýÖµ·¶Î§ÊÇ0-9£¬0±íʾÎÞѹËõ£¬9±íʾ×î´óѹËõ£¬µ±È»Ñ¹Ëõ³Ì¶ÈÔ½¸ßÔ½·ÑCPU¡£
//È»ºóÓÃheader()º¯Êý¸øä¯ÀÀÆ÷·¢ËÍһЩͷ²¿ÐÅÏ¢£¬¸æËßä¯ÀÀÆ÷Õâ¸öÒ³ÃæÒѾÓÃGZIPѹËõ¹ýÁË£¡
header("Content-Encoding:gzip");
header("Vary:Accept-Encoding");
header("Content-Length:".strlen( content));
}
return content;//·µ»ØÑ¹ËõµÄÄÚÈÝ£¬»òÕß˵°ÑѹËõºÃµÄ±ý¸ÉËͻع¤×÷̨¡£
}
ѹËõ»ú×öºÃÁËÖ®ºó£¬ÎÒÃǰÑѹËõ»ú·Åµ½¹¤×÷̨ÉÏ£¬ÓÚÊÇÔÀ´µÄob_start()±ä³É
ob_start('ob_gzip');//û´í£¬¾ÍÊǸøob_start()¼ÓÒ»¸ö²ÎÊý£¬²ÎÊýÃû¾ÍÊÇÎÒÃǸղÅ×öµÄ“ѹËõ»ú”µÄº¯ÊýÃû¡£ÕâÑùµ±ÄÚÈݽøÈ뻺³åÇøºóPHP¾Í»áµ÷ÓÃob_gzipº¯Êý°ÑËüѹËõÁË¡£
ºÃÁË£¬ËùÓеŤ×÷ÒÑÍê³É£¬×îºó½»»õ£º
ob_end_flush();//½áÊø»º³åÇø£¬Êä³öÄÚÈÝ¡£µ±È»£¬²»ÓÃÕâ¸öº¯ÊýÒ²ÐУ¬ÒòΪ³ÌÐòÖ´Ðе½×îºó»á×Ô¶¯½«»º³åÇøÄÚÈÝÊä³ö¡£
ÍêÕûµÄʾÀýÈçÏ£º
<?php
//ÆôÓÃÒ»¸ö´øÓÐob_gzipѹËõ»úµÄ¹¤×÷̨
ob_start('ob_gzip');
//×¼±¸Ò»Ð©´ýѹËõµÄÄÚÈÝ
for( i=0; i<100; i++)
{
echo('ÕâÀïÊÇѹËõ±ý¸ÉµÄÔÁÏ£¬ÕâÀïÊÇѹËõ±ý¸ÉµÄÔÁÏ£¬ÔÁÏ');
}
//Êä³öѹËõ³É¹û
ob_end_flush();
//ÕâÊÇob_gzipѹËõ»ú
functionob_gzip( content)
{
if(!headers_sent()&&
extension_loaded("zlib")&&
strstr( _SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))
{
content=gzencode( content."\n//´ËÒ³ÒÑѹËõ",9);
header("Content-Encoding:gzip");
header("Vary:Accept-Encoding");
header("Content-Length:".strlen( content));
}
return content;
}
?>
¾¹ýʵ¼Ê²âÊÔ£¬ÉÏÃæ´úÂëÖÐÈç¹û²»ÓÃGZIP£¬ÊÇ4.69KB=4802.56B£¬ÆôÓÃGZIPºóËõСΪ104B£¬ßÀ……ÎÒÊýѧ¿ÉÄܲ»ºÃ£¬×Ô¼ºËãÏÂѹËõµ½ÁËÔÀ´µÄ°Ù·ÖÖ®¶àÉÙ°É¡£¡£
ÁíÍ⣬ÏÂÃæÊÇÓÃFlashGet»ñÈ¡µÄÈÕÖ¾ÐÅÏ¢£¬¿ÉÒÔ¿´µ½ÎÒÃdzÌÐòÀï¼ÓµÄheaderÐÅÏ¢£º
FriJan2517:53:102008HTTP/1.1200OK
FriJan2517:53:102008Server:Microsoft-IIS/5.1
FriJan2517:53:102008Date:Fri,25Jan200809:53:10GMT
FriJan2517:53:102008Connection:close
FriJan2517:53:102008X-Powered-By:PHP/5.2.5
FriJan2517:53:102008Content-Encoding:gzip
FriJan2517:53:102008Vary:Accept-Encoding
FriJan2517:53:102008Content-Length:104
FriJan2517:53:102008Content-type:text/html
ÒÔÉÏËù·ÖÏíµÄÊǹØÓÚÓÃPHPÀ´ÊµÏÖÒ³ÃæGZIPµÄѹËõÊä³ö½Ì³Ì£¬ÏÂÃæÊDZà¼ÎªÄãÍÆ¼öµÄÓмÛÖµµÄÓû§»¥¶¯£º
¡¡¡¡Ïà¹ØÎÊÌ⣺ÈçºÎÓÃphpѹËõhtml´úÂë²¢Êä³ö
¡¡¡¡´ð£ºfunction compressHtml($string) { $matches = array(); preg_match_all('/(.+?)+/is', $string, $matches); foreach ((array)$matches[1] as $k => $v) { $string = str_replace($v, "#{$k}#", $string); } $string = str_replace("\r\n", '', ... >>Ïêϸ
¡¡¡¡Ïà¹ØÎÊÌ⣺ÈçºÎÔÚPHP¿ªÆôgzipÒ³ÃæÑ¹ËõʵÀý
¡¡¡¡´ð£º1¡¢apache»·¾³Ï¿ªÆôgzip ÕÒµ½²¢´ò¿ªapache/confĿ¼ÖеÄhttpd.confÎļþ httpd.confÖдò¿ªdeflate_ModuleºÍheaders_ModuleÄ£¿é£¬¾ßÌå×ö·¨Îª½« ÈçÏÂÁ½¾äÇ°ÃæµÄ#È¥µô£º LoadModule deflate_module modules/mod_deflate.so LoadModule headers_modu... >>Ïêϸ
¡¡¡¡Ïà¹ØÎÊÌ⣺ÈçºÎÆôÓÃÍøÒ³GZIPѹËõ
¡¡¡¡´ð£ºÏÂÃæ¡±ÊæÓî׿´´Õ¾³¤¡°½«ºÍ´ó¼ÒÒ»Æð·ÖÏíһϣ¬Ï£Íû¶ÔÔÛÃÇÕ¾³¤ÓÐËù°ïÖú£¡ 1.¿ªÆôÍøÒ³GZIPѹËõÓÐʲôºÃ´¦£¿ Gzip¿ªÆôÒÔºó»á½«Êä³öµ½Óû§ä¯ÀÀÆ÷µÄÊý¾Ý½øÐÐѹËõµÄ´¦Àí£¬ÕâÑù¾Í»á¼õСͨ¹ýÍøÂç´«ÊäµÄÊý¾ÝÁ¿£¬Ìá¸ßä¯ÀÀµÄËÙ¶È¡£ ½ø¶ø¶ÔÓÚËÑË÷ÒýÇæµÄÊÕ¼ҲÓÐ... >>Ïêϸ
- ÆÀÂÛÁÐ±í£¨ÍøÓÑÆÀÂÛ½ö¹©ÍøÓѱí´ï¸öÈË¿´·¨£¬²¢²»±íÃ÷±¾Õ¾Í¬ÒâÆä¹Ûµã»ò֤ʵÆäÃèÊö£©
-
