PHP在線解壓ZIP文件解決方案

2018-07-24 17:59:00
小熊
原創
9253
摘要:如果能夠在空間直接上傳壓縮包的話,那速度肯定會快的多。但是上傳壓縮包之後,如何解壓是一箇問題。我們的空間,用戶穫取到的權限是有限的,有很多空間服務商沒有提供自助解壓服務。所以,我們需要能夠上傳壓縮包,還能解壓縮,那樣就完美瞭。

一.背景

我們在使用空間的時候,通常服務商隻會給我們一箇FTP賬號和密碼,然後通過FTP遠程鏈接工具鏈接空間來上傳我們的代碼。這樣,會有一箇問題:如果代碼文件過多,上傳真的是非常慢的,幾箇小時都不足爲奇,如果牠能慢慢上傳完還好,如果遇到網絡或者其他原因造成網絡中斷,這種感受是非常痛苦的。

二.需求

如果能夠在空間直接上傳壓縮包的話,那速度肯定會快的多。但是上傳壓縮包之後,如何解壓是一箇問題。我們的空間,用戶穫取到的權限是有限的,有很多空間服務商沒有提供自助解壓服務。所以,我們需要能夠上傳壓縮包,還能解壓縮,那樣就完美瞭。

三.解決方案

網上也有很多關於在線解壓縮和壓縮的解決方法。比較流行的有 faisun_unzip 等等。關於PHP解壓縮,其實是需要安裝zlib擴展的,這樣關於壓縮相關函數纔能使用。具體可查看 http://www.zlib.net 瞭解。

貌似自php4.3開始zlib壓縮就已經內置在php中瞭,所以至少Windows環境下是不需要安裝zlib的。如果你真的找不到 php_zlib.dll文件,在上麵提供的網站上麵下載。

具體的安裝細節,我在這兒就不贅述瞭,如果不明白,請查查相關資料。

其中關於解壓縮相關函數的使用,我們簡單説一下。

gzclose () :  關閉一箇打開的壓縮文件。

gzeof():    判斷是否在壓縮文件尾。

gzfile():   讀壓縮文件到一箇數組中。

gzgetc():   讀壓縮文件的字符。

gzgets():   讀壓縮文件的字符串。

gzopen():   打開壓縮文件。

gzputs():   資料寫入壓縮文件。

gzread():   壓縮文件讀齣指定長度字符串。

gzrewind():  重設壓縮文件指針。

readgzfile(): 讀齣壓縮文件。

...

具體使用方法見手冊: http://www.php.net/manual/zh/book.zlib.php

四.案例

封裝一箇頁麵,上傳至空間根目録,通過這箇頁麵訪問上傳zip壓縮包,或者瀏覽併選擇該文件所在目録下麵

的所有zip壓縮包。(以 faisun_unzip爲例,源碼自行百度)如下圖:

解壓到目録,就是你設置一箇需要解壓到的自定義目録下麵。留空的話,就是當前目録。

驗證密碼,就是在源文件中設置瞭一箇驗證碼,僅爲瞭安全考慮。

點擊解壓,我們看到瞭這箇頁麵:

服務器文件:

註意事項:1.如果你在使用過程中齣現報錯,你需要檢查環境,是否安裝瞭zlib擴展。

     2.php 自帶的解壓縮類 ZipArchive 你可以瞭解一下。

文章分類
聯繫我們
聯繫人: 小熊
電話: 18037578880
Email: admin@cnsite.org
QQ: 929410000
微信: itseor
微博: itseoer
網址: www.beatmoon.com