PHP两种方法实现gzip页面压缩,不过这两种方法实现的前提是服务器要支持gzip压缩才行,服务器不支持的话,两种方法都是白搭了。对于如何测试自己的服务器是否支持Gzip压缩功能,可以参考:如何测试服务器是否支持Gzip压缩,另外你也可以参考:使用PHP的GZip压缩功能对网站JS和CSS文件进行压缩加速网站访问速度
提示:查询一个页面是否使用了gzip压缩功能可使用站长工具进行查询:http://tool.chinaz.com/Gzips/
下面正文开始介绍如何利用 php 实现 gzip 页面压缩功能。
方法一(用php的内置压缩函数):
<?PHP if(Extension_Loaded('zlib')) Ob_Start('ob_gzhandler'); Header("Content-type: text/html"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>php程序员的笔记</title> </head> <body> <?php for($i=0;$i<10000;$i++){ echo 'Hello World!'; } ?> </body> </html> <?PHP if(Extension_Loaded('zlib')) Ob_End_Flush(); ?>
方法二(自写函数):
<?php ob_start('ob_gzip'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>php程序员的笔记</title> </head> <body> </body> </html> <?php ob_end_flush(); //压缩函数 function ob_gzip($content){ if(!headers_sent()&&extension_loaded("zlib")&&strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")){ $content = gzencode($content,9); header("Content-Encoding: gzip"); header("Vary: Accept-Encoding"); header("Content-Length: ".strlen($content)); } return $content; } ?>