PHP執行zip與rar解壓縮方法

2021-06-13 02:22:33 字數 2183 閱讀 9456

所謂萬事開頭難,php的編寫也是這樣,因此,今天為您介紹一些php執行zip與rar解壓縮方法的應用技巧給大家作參考,希望對大家有所幫助。

zip:pclzip

.net

/pclzip/index.en.php

rar:pecl rar

過去要在php下執行解壓縮程式,無非最常見的方法是寫command 然後用exec()等執行函式去跑。這在windows下或許可以,但換成unix話會礙於帳號許可權問題而無法順利執行。那有沒有那種本身就有提供函式可以直接使用而不需要去下command去跑的方法呢?答案有(話說找了好幾天才找到可以用的方法......xd)。

先講zip,由於php內建本身就有提供zip相關函式(但須先要有ziplib函式)但不是很好用

就光extract來講,內建函式只負責單純解壓縮檔案出來,而不是會按照資料夾依序解壓縮出來

這樣就失去extract的作用

而要講的 pclzip 這支,本身就有提供 extension 了,故有沒有ziplib就沒差

且免安裝,只需要再用他時 include 進來就可以了

例如:<?php include('pclzip.lib.php'); ?> 這樣

此外在extract部分,則是會按照資料夾順序依序解壓縮出來,而並非單純解壓縮檔案出來

相關用法像這樣

<?php

require_once('pclzip.lib.php');

$archive = new pclzip('archive.zip');

if ($archive->extract() == 0)

?>

當然也可以指定解壓縮路徑,像這樣

<?php

include('pclzip.lib.php');

$archive = new pclzip('archive.zip');

if ($archive->extract(pclzip_opt_path, 'data')

?>

如果再寫一支自動建立目錄的script會更好,因為函式本身不會判斷壓縮檔裡第一層是檔案還是資料夾(這我想其他相關函式也做不到吧!!!)

再來是rar,這問題比較大,由於php本身沒提供rar相關函式,所以需要求助第三方函式來用

所幸有這個 pecl(the php extension community library)

裡面有個 rar 的 package 可以使用

不過須得手動安裝才行

若是 unix 話,可以參考下列安裝法

fetch

gunzip rar-***.tgz

tar -xvf rar-***.tar

cd rar-***

phpize

./configure && make && make install

當然若是 freebsd 話,用 port 裝會更快

cd /usr/ports/archivers/pecl-rar

make

make install

記得安裝完後須 restart apache

安裝完後可以做測試

<?php

$rar_file = rar_open('example.rar') or die("failed to open rar archive"); 

/*example.rar換成其他檔案即可*/

$entries_list = rar_list($rar_file);

print_r($entries_list);

?>

比較要注意的,若是用 port 安裝話,版本會比較新(官網只有到0.3.1,port 安裝話已經到0.3.4),所以用法上會有些出入

但extract用法上並無差異

相關用法像這樣

<?php

$rar_file = rar_open('example.rar') or die("can't open rar archive");

/*example.rar換成其他檔案即可*/

$entries = rar_list($rar_file);

foreach ($entries as $entry)

rar_close($rar_file);

?>

跟zip部分一樣,若搭配自動建立目錄會更好

通過以上老師的整理,希望大家可以受益更多,學無止境,祝願各位早日通往php技術的成功之路.

PHP 解壓縮zip檔案

1 使用php執行檔案解壓縮zip檔案,前提條件,一定要確定伺服器開啟了zip拓展 2 封裝的方法如下 例項 1 3 壓縮檔案 4 param array files 待壓縮檔案 array d test 1.txt d test 2.jpg 檔案位址為絕對路徑 5 param string fil...

zip壓縮與解壓縮示例

範例 zip命令可以用來將檔案壓縮成為常用的zip格式。unzip命令則用來解壓縮zip檔案。1.我想把乙個檔案abc.txt和乙個目錄dir1壓縮成為yasuo.zip zip r yasuo.zip abc.txt dir1 unzip yasuo.zip 3.我當前目錄下有abc1.zip,a...

php解壓縮zip和rar壓縮包檔案的方法

專案涉及文件處理,使用者上傳的包括 zip 和 rar 壓縮包,需要先將壓縮包解壓後再作處理。對於 zip 壓縮包,由於 php 自帶 zip 擴充套件,可以直接解壓。解壓zip壓縮包 file opt data upload testfile.zip outpath opt data upload...