php啟用gzip壓縮(php解壓壓縮包)

本文目錄一覽:

如何在PHP開啟gzip頁面壓縮實例

1、apache環境下開啟gzip

找到並打開apache/conf目錄中的httpd.conf文件

httpd.conf中打開deflate_Module和headers_Module模塊,具體做法為將 如下兩句前面的#去掉:

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

在httpd.conf文件底部加入如下代碼配置需要壓縮的文件:

IfModule deflate_module

SetOutputFilter DEFLATE

# Don’t compress images and other

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css

AddOutputFilterByType DEFLATE application/x-javascript

/IfModule

重啟apache服務端

使用工具重新檢測是否開啟gzip壓縮。考慮到相關廣告檢測機制具體的gzip檢測工具訪問地址可以到搜索引擎中去查找。

2、iis7.0以上

如何開啟gzip壓縮方法大全

IIS6.0啟用Gzip壓縮的方法:

1、新建Web服務擴展(如下圖)

dll路徑:“c:windowssystem32inetsrvgzip.dll”,然後啟用。

2、網站服務中開啟HTTP壓縮支持(如下圖)

臨時目錄需要給IIS用戶讀寫權限。

3、修改IIS配置文件MetaBase.xml

文件路徑:“c:windowssystem32inetsrv”(請先備份至他處),打開後搜索“HcDynamicCompressionLevel”,並修改(確定已備份)“Compression/deflate”和“Compression/gzip”兩個片段的內容。下面的圖n和圖b所修改的內容用意是將js、css和php加入到壓縮的範疇,數字9代表壓縮等級。

(圖n)

(圖b)

4、重啟IIS服務使之生效

——————————————————分分割割—————————————————

Apache啟用Gzip壓縮的方法:

1、開啟模塊並添加配置項目

a、vi /etc/httpd/conf/httpd.conf

b、查找LoadModule (/LoadModule),加入“LoadModule deflate_module modules/mod_deflate.so”這行

c、添加配置項目(下段內容)

複製代碼代碼如下:

IfModule mod_deflate.c

# 壓縮等級 9

DeflateCompressionLevel 9

# 壓縮類型 html、xml、php、css、js

SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php

AddOutputFilter DEFLATE js css

/IfModule

2、重啟apache使之生效

service httpd start

——————————————————分分割割—————————————————

檢測是否支持Gzip

END

注意事項

1. 在編輯MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin

2. 修改完成後開啟iisadmin服務,並執行iisreset命令

關於SEO的測試

壓縮是否對SEO有影響,經測試,開啟後仍然可以被很好的收錄。

如何用PHP實現頁面的GZIP壓縮輸出

第一步,你需要對php的設置如下:

php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1

第二步,你需要在apache下增加如下設置:

AddOutputFilter DEFLATE html php js css

這樣就可以對html php js css進行gzip壓縮了。

第三步,你需要使用如下php壓縮html並輸出到客戶端的函數:

function compress_html($string) { return ltrim(rtrim(preg_replace(array(“/ *([^ ]*) */”,”//”,”‘/\*[^*]*\*/'”,”/\r\n/”,”/\n/”,”/\t/”,’/[ ]+/’), array(“\\1″,”,”,”,”,”,”),$string))); }

上面的這個正則表達式,很強大的哦,經過我本人親自測試可使用。

通過以上方法,你就可以將你的html代碼壓縮然後輸出給客戶端了。不信你可以查看源代碼,就是一行,網頁瞬間壓縮很小。

如何開啟gzip壓縮

gzip是HTML壓縮算法的一種,HTTP壓縮是在Web服務器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮工作原理是:

Web服務器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮;

如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的後綴名;

如果請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩衝目錄中檢查是否已經存在請求文件的最新壓縮文件;

如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,並在壓縮緩衝目錄中存放請求文件的壓縮文件;

如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;

如果請求文件是ASPX等動態文件,Web服務器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。

怎麼做gzip壓縮呢?大致有:在Contol Pannel開啟gzip、開啟http服務器gzip、利用php本身的gzip。

IE6和火狐都支持客戶端gzip,在網頁傳輸之前,先使用gzip壓縮再傳輸給客戶端,客戶端接收之後由瀏覽器解壓顯示。

IIS6已經內建了gzip壓縮的支持。在IIS6上做gzip壓縮的方法是:

如果你需要壓縮靜態文件,可以先在硬盤上新建一個目錄,並給它“IUSR_機器名”這個用戶設置寫權限。如果壓縮動態文件就可以不用這樣的,因為它的頁面是每次都動態生成的(頁面動態生成),壓縮完就放棄。然後在IIS管理器中,“網站”上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入“服務”標籤,選上啟用動態內容壓縮,靜態內容壓縮。給gzip的臨時目錄空間不要太大了200MB左右就夠了。

然後選中網站下面那個服務器擴展,新建一個服務器擴展。可以用任何你想用的名字,下面的添加文件的路徑是:

c:\windows\system32\inetsrv\gzip.dll,然後啟用這個擴展。

這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮範圍內。我們只能去修改它的配置文件了。

在c:\windows\system32\inetsrv\下面有個MetaBase.xml文件,可以用記事本打開,找到IIsCompressionScheme,有三個相同名字的段,

分別是

IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/deflate”

IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/gzip”

IIsCompressionSchemes Location =“/LM/W3SVC/Filters/Compression/Parameters”

前兩段有基本相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態程序要壓縮,也加在這裡。HcDynamicCompressionLevel改成9,9是性價比最高的一個。

至此,怎麼做gzip壓縮的過程我們就都實現了,需要注意的是:網頁啟用了gzip壓縮後網站打開速度通常可能不會有太明顯的感覺(相對於瀏覽者),可以用一些特定的來檢查你的網頁是否壓縮過了,以及壓縮比和加快的速度。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/238957.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:14
下一篇 2024-12-12 12:14

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 用Python解壓縮壓縮包

    本文將從多個方面對用Python解壓縮壓縮包進行詳細闡述,並給出相應的代碼示例。 一、導入必要的庫 使用Python解壓縮壓縮包需要用到ZipFile庫,因此需要先導入該庫。 im…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24

發表回復

登錄後才能評論