php開啟gzip壓縮的三種可靠方法

來源:互聯網
上載者:User
  1. output_buffering = Off
複製代碼

3,php.ini為

  1. ;output_handler = ob_gzhandler
  2. zlib.output_compression = Off
  3. ;zlib.output_compression_level = -1
複製代碼

4,apache增加如下:

  1. AddOutputFilter DEFLATE html php js css
複製代碼

方法2,使用php.ini中的zlib.output_compression1,關閉apache中的mod_deflate.so2,php.ini:

  1. output_buffering = On
複製代碼

2,php.ini為

  1. ;output_handler =
  2. zlib.output_compression = Off
  3. zlib.output_compression_level = 6(等級-1至9,預設為6即可)
複製代碼

方法3,用php的內建函數ob_gzhandler(必須保證extension中安裝並開啟了php_zlib.dll)1,關閉apache中的mod_deflate.so2,php.ini為

  1. output_handler = ob_gzhandler
  2. zlib.output_compression = On
  3. ;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格式:

  1. function compress_html($buffer){//去除檔案中的注釋
  2. $pattern=array("/> *([^ ]*) */","'/\*[^*]*\*/'","/[\s]+/","/\r\n/","/\n/","/\t/");
  3. $replace=array(">\\1<","",""," ","","","");
  4. return ltrim(rtrim(preg_replace($pattern,$replace,$buffer)));
  5. }
複製代碼

如此之後,不僅可以壓縮html格式(也可以使用gzip)。

方法1的完整配置方案:1,開啟apache中的mod_deflate.so2,php.ini為

  1. output_buffering = Off
複製代碼

3,php.ini為;

  1. output_handler = ob_gzhandler
  2. ;zlib.output_compression = Off
  3. ;zlib.output_compression_level = -1
複製代碼

4,apache增加如下:

  1. AddOutputFilter DEFLATE html php js css
複製代碼

在需要壓縮html格式的php頭部使用如下程式:

  1. ob_start("compress_html");//需要將php.ini中的zlib.output_compression開啟
  2. function compress_html($buffer){//去除檔案中的注釋
  3. $pattern=array("/> *([^ ]*) */","'/\*[^*]*\*/'","/[\s]+/","/\r\n/","/\n/","/\t/");
  4. $replace=array(">\\1<","",""," ","","","");
  5. return ltrim(rtrim(preg_replace($pattern,$replace,$buffer)));
  6. }
複製代碼

如此便開啟了php的gzip壓縮功能,而且支援瀏覽器查看源檔案時html自動壓縮格式化,很好用的哦。開啟gzip壓縮吧,特別對於資金不足的小站長們,頻寬都是白花花的銀子啊。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.