- output_buffering = Off
-
複製代碼3,php.ini為
- ;output_handler = ob_gzhandler
- zlib.output_compression = Off
- ;zlib.output_compression_level = -1
-
複製代碼4,apache增加如下:
- AddOutputFilter DEFLATE html php js css
複製代碼方法2,使用php.ini中的zlib.output_compression1,關閉apache中的mod_deflate.so2,php.ini:
- output_buffering = On
-
複製代碼2,php.ini為
- ;output_handler =
- zlib.output_compression = Off
- zlib.output_compression_level = 6(等級-1至9,預設為6即可)
複製代碼方法3,用php的內建函數ob_gzhandler(必須保證extension中安裝並開啟了php_zlib.dll)1,關閉apache中的mod_deflate.so2,php.ini為
- output_handler = ob_gzhandler
- zlib.output_compression = On
- ;zlib.output_compression_level = -1
複製代碼說明:在方法三中,如果使用了php.ini中設定output_handler=ob_gzhandler,那麼程式中就不需要再加ob_start('ob_gzhandler');否則會雙重壓縮,實際上就是報錯,一般程式會加以判斷。 設定php.ini為預設關閉,程式中增加,但是如果是自己伺服器,就設定ini預設開啟。建議使用第1種或者第2種:(特別建議使用第1種)此時ob_start()可以自訂函數,寫法如:ob_start("compress_html");即可壓縮html格式:
- function compress_html($buffer){//去除檔案中的注釋
- $pattern=array("/> *([^ ]*) */","'/\*[^*]*\*/'","/[\s]+/","/\r\n/","/\n/","/\t/");
- $replace=array(">\\1<","",""," ","","","");
- return ltrim(rtrim(preg_replace($pattern,$replace,$buffer)));
- }
-
複製代碼如此之後,不僅可以壓縮html格式(也可以使用gzip)。 方法1的完整配置方案:1,開啟apache中的mod_deflate.so2,php.ini為
- output_buffering = Off
-
複製代碼3,php.ini為;
- output_handler = ob_gzhandler
- ;zlib.output_compression = Off
- ;zlib.output_compression_level = -1
-
複製代碼4,apache增加如下:
- AddOutputFilter DEFLATE html php js css
複製代碼在需要壓縮html格式的php頭部使用如下程式:
- ob_start("compress_html");//需要將php.ini中的zlib.output_compression開啟
- function compress_html($buffer){//去除檔案中的注釋
- $pattern=array("/> *([^ ]*) */","'/\*[^*]*\*/'","/[\s]+/","/\r\n/","/\n/","/\t/");
- $replace=array(">\\1<","",""," ","","","");
- return ltrim(rtrim(preg_replace($pattern,$replace,$buffer)));
- }
-
複製代碼如此便開啟了php的gzip壓縮功能,而且支援瀏覽器查看源檔案時html自動壓縮格式化,很好用的哦。開啟gzip壓縮吧,特別對於資金不足的小站長們,頻寬都是白花花的銀子啊。 |