1. php如何壓縮一個文件夾裡面所有的文件到zip文件裡面
//函數:文件壓縮 //壓縮參數:需要壓縮的文件或文件夾(文件可為數組),壓縮後的zip文件名及存放路徑,壓縮類型1:文件夾2:文件,後續操作1:壓縮後下載;2:存放在伺服器上(默認為/@Upload下) //壓縮文件夾示例:Tozip("./","../".date("d-H-i-s").".zip",1,2); //壓縮文件示例: // $aaa=array("../1.txt","../2.txt"); // Tozip($aaa,"../2.zip",2);FunctionTozip($Path, $ZipFile, $Typ=1, $Todo=1){//IF(!is_writeable($Path)){Exit("文件夾不可寫!");}$Path=Str_iReplace("\\","/",($Path));IF(Is_Null($Path) OrEmpty($Path) Or!IsSet($Path)){ReturnFalse;}IF(Is_Null($ZipFile) OrEmpty($ZipFile) Or!IsSet($ZipFile)){ReturnFalse;} Include_once("inc/Class_Zip.php");$zip=NewPHPZip;IF(SubStr($Path,-1,1)=="/"){$Path=SubStr($Path,0, StrLen($Path)-1);} OB_end_clean();Switch($Typ){Case"1":$zip-ZipDir($Path, $ZipFile, $Todo);Break;Case"2":$zip-ZipFile($Path,
2. 如何用php壓縮html代碼並輸出
第一步,你需要對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代碼壓縮然後輸出給客戶端了。不信你可以查看源代碼,就是一行,網頁瞬間壓縮很小。
3. PHP的zip壓縮工具擴展包學習
PHP的Zip壓縮工具擴展包的學習
Zip在PHP中得到最大幅度功能支持,是通用常見的一種壓縮格式。安裝時,Zip擴展已經集成在PHP的安裝包中,在Configure的時候可以直接加上--with-zip。如果沒有在安裝時加上該參數,我們也可以在源碼包的ext/zip下找到源碼,通過擴展安裝的方式進行安裝。
創建一個壓縮包是Zip的基本操作,通過實例化一個ZipArchive對象後,使用open()函數打開或創建一個壓縮包文件。添加內容的方式有兩種,addFromString()加入文字類型的文件,addFile()將外部文件加入到壓縮包中。查看壓縮包文件的文件數量及狀態信息,使用numFiles和status屬性。最後,使用close()關閉句柄,完成創建。
讀取壓縮包內容及信息同樣是通過實例化ZipArchive類,open()打開壓縮包文件句柄,通過循環和statIndex()方法獲取每個文件實體的信息。使用getFromIndex()或getFromName()直接獲取指定的文件,renameName()直接給壓縮包內部的文件改名,extractTo()將指定的文件或整個壓縮包解壓到指定的目錄中。
使用Zip壓縮目錄功能,直接使用addGlob幫助完成對文件目錄下所有文件的打包,並指定壓縮包內部的路徑地址。設置說明及密碼,通過現成的函數方法直接使用,通過操作系統的unzip命令查看注釋信息及打包的目錄內容。Zip還包括通過zip://偽協議直接獲取壓縮包內某個文件內容的功能。
流、偽協議方式讀取文件,使用getStream()方法直接獲取壓縮包中某個文件的流,或使用zip://偽協議直接使用fopen()、file_get_contents()函數讀取文件。使用()函數將文件拷貝出來,方便獲取並解壓文件。
總結,Zip在PHP中提供了強大的壓縮功能,功能豐富,操作簡單。適用於業務選型時快速聯想到PHP已經提供了現成的擴展。需要了解Zip更多內容的同學可查閱手冊或參考文檔。
測試代碼:github.com/zhangyue0503...
參考文檔:php.net/manual/zh/book.zip
4. wordpress優化怎麼開啟GZIP壓縮
方法一、通過修改index.php文件開啟Gzip壓縮
下載Wordpress網站根目錄index.php文件到本地,用專業網頁或代碼編輯軟體打開編輯,請勿使用系統自帶的記事本。填的時候注意標點符號,需英文狀態輸入。
在打開的index.php
中找到:
define(』WP_USE_THEMES』,
true);
在後面加上:
ob_start(『ob_gzhandler』)
這種方法最簡單,推薦使用。不過有個弊端,就是當wordpress系統升級後需要重新設置。
方法二、通過.htaccess啟用Gzip壓縮
如果你的網站空間或伺服器支持.htaccess文件,那麼在wordpress根目錄的.htaccess中添加以下代碼,然後上傳到wordpress根目錄即可。
用FTP軟體登陸Wordpress博客網站目錄。
右鍵.htaccess文件-編輯,打開.htaccess文件。在最後面加上第3點中介紹的兩種代碼中的任意一種。
實現gzip壓縮代碼有兩種具體如下:
第一種:php_value
output_handler
ob_gzhandler
第二種:
<IfMole
mod_expires.c>
ExpiresActive
On
ExpiresByType
image/gif
A2592000
ExpiresByType
image/jpeg
A2592000
ExpiresByType
image/png
A2592000
ExpiresByType
image/x-icon
A2592000
ExpiresByType
application/x-javascript
A604800
ExpiresByType
text/css
A604800
</IfMole>
<IfMole
mod_deflate.c>
SetOutputFilter
DEFLATE
AddOutputFilterByType
DEFLATE
text/html
text/css
image/gif
image/jpeg
image/png
application/x-javascript
</IfMole>
方法三、通過php.ini
啟用Gzip壓縮
如果伺服器支持php.ini重定義的話,可以在php.ini中增加以下代碼來開啟gzip。
zlib.output_compression_level
=
number
其中number為1—9的值,1的壓縮比率最低,
建議取5。
方法四、安裝gzippy插件開啟Gzip壓縮
下載Gzippy插件(下載地址見參考資料。),點wordpress後台的安裝插件-上傳-選擇文件-現在安裝,安裝完成後啟動插件即可。
方法五、利用WP
Super
Cache緩存插件自帶功能開啟Gzip壓縮
已安裝WP
Super
Cache緩存插件的朋友,可以在WP
Super
Cache設置-高級選項中勾選Compress
pages
so
they』re
served
more
quickly
to
visitors.(Recommended)一項,這樣也可以開啟Gzip壓縮。不過勾選這個選項可能導致網頁亂碼。
方法六、Cpanel控制面板的空間開啟Gzip壓縮
使用Cpanel面板的空間如果伺服器支持,可以在Cpanel後台設置開啟網站Gzip壓縮。在Cpanel面板的軟體欄目-優化網站中進行設置。點優化網站後,選擇壓縮所有內,然後更新設置。
查看Gzip是否開啟成功
選擇以上任一適合自己的方法設置好之後,大家可以到Gzip壓縮檢測網頁(見參考資料)進行測試,看看wordpress
Gzip壓縮有沒有成功。祝你成功。以下是本人博客的Gzip檢測圖-Gzip壓縮已開啟:
注意事項及說明
如果在.htaccess文件中禁止了gzip功能的話,那在php.ini文件中開啟後也需在.htaccess文件中開啟gzip,否則沒有效果。
開啟wordpress的gzip功能後,伺服器將在頁面傳輸前將頁面壓縮後傳送,可以有效減少伺服器的帶寬使用,也可以加速頁面下載。
另外請注意只能選擇一種方式來開啟wordpress
gzip壓縮,否則有可能造成沖突,請謹記。
5. win2008 iis php 如何開啟壓縮
因為在做一個項目,項目裡面伺服器主要提供數據,但是數據多了文件就大了,比較浪費流量和時間,我們便用Gzip來處理。我在本機上是apache,伺服器上是IIS6.0,用的是php,那麼我就在這里分享一下。
IIS 的 GZIP 壓縮
1.首先備份 IIS 的配置文件, 復制C:.xml到另外的備份文件夾中. C:.xml是 IIS 的核心配置文件,該文件的完整性一但被破壞,IIS 將無法正常運行,嚴重到需要重新安裝系統.
2. 在開始菜單中啟動 Internet 信息服務(IIS)管理器,右鍵點擊「網站」屬性,打開「服務」選項卡,勾選「HTTP 壓縮」的兩個選項。「臨時目錄」和「臨時目錄最大容量」可根據需要自行設置。設置完成後點擊確定。
3. 右鍵點擊「網站」下方的 「Web服務擴展」,添加一個新的Web服務擴展,擴展名填寫為「HTTP Compression」或其他,都可以。「要求的文件」添加:c:windowssystem32inetsrvgzip.dll ,並勾選「設置擴展狀態為允許」,完成後點擊確定。
4.下面的步驟有些復雜,如果沒有確定的把握能理解,最好不要嘗試,右鍵點擊「Internet 信息服務的」「本地計算機」屬性,勾選「允許直接編輯配置資料庫」並確定。
5. 在開始菜單中運行 notepad C:.xml ,打開metabase.xml 文件,請在任何改動前再次確認該文件已經備份。
6. 用文本編輯器打開metabase.xml ,用查找功能找到「IIsCompressionScheme」,共有3處,都在一起,分別是deflate、gzip和 Parameters,deflate也是一種壓縮格式,不過性能上不如gzip。需要修改的是deflate和gzip這兩段,參數基本一樣,都要修改。
HcDynamicCompressionLevel是用來設置壓縮率,默認是0,最高是10。低壓縮級別生成稍大一些的壓縮文件,但對 CPU 和內存資源的總體影響較小。高壓縮級別通常會生成較小的壓縮文件,但會佔用較多的 CPU 時間和內存。有人說設置成9性價比最高。
HcFileExtensions是用來設置壓縮的靜態文件擴展名,默認是htm、html、txt,根據網站的自身情況添加擴展名,最基本的是js、css。添加時注意原有的換行格式。
HcScriptFileExtensions是用來設置壓縮的動態文件擴展名,默認是asp、dll和exe,根據需要自行添加擴展名,無外乎 aspx、php等。可以將這一項的默認刪除留空,這樣所有的動態響應都以壓縮方式發送。另外,還將動態壓縮 HcFileExtensions 中所有未指定的靜態文件類型,並且因此不將它們放入緩存。同樣地,必須將 HcDoDynamicCompression 設置為 true,以進行動態壓縮。
PHP Gzip
/*
*壓縮數據
*/
publicstaticfunctionob_gzip($content)//$content就是要壓縮的頁面內容,或者說餅干原料
{
if(!headers_sent()&&//如果頁面頭部信息還沒有輸出
extension_loaded("zlib")&&//而且zlib擴展已經載入到PHP中
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))//而且瀏覽器說它可以接受GZIP的頁面
{
$content=gzencode($content."OK",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;//返回壓縮的內容,或者說把壓縮好的餅干送回工作台。
}