一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP執行zip與rar解壓縮方法實現代碼

PHP執行zip與rar解壓縮方法實現代碼

2019-11-13 11:48php教程網 PHP教程

PHP執行zip與rar解壓縮方法 先放著,以后研究,有地方要用到。

Zip:PclZip http://www.phpconcept.net/pclzip/index.en.php 
Rar:PECL rar http://pecl.php.net/package/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) { /*解壓縮路徑跟原始檔相同路徑*/ 
die("Error : ".$archive->errorInfo(true)); 

?> 


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

復制代碼代碼如下:


<?php 
include('pclzip.lib.php'); 
$archive = new PclZip('archive.zip'); 
if ($archive->extract(PCLZIP_OPT_PATH, 'data') { /*data換成其他路徑即可*/ 
die("Error : ".$archive->errorInfo(true)); 

?> 


如果再寫一支自動建立目錄的script會更好,因為函式本身不會判斷壓縮檔裡第一層是檔桉還是資料夾(這我想其他相關函式也做不到吧!!!) 
再來是Rar,這問題比較大,由于php本身沒提供rar相關函式,所以需要求助第三方函式來用 
所幸有這個 PECL(The PHP Extension Community Library) 
裡面有個 rar 的 package 可以使用 
不過須得手動安裝才行 
若是 Unix 話,可以參考下列安裝法 

fetch http://pecl.php.net/get/rar-x.x.x.tgz 
gunzip rar-xxx.tgz 
tar -xvf rar-xxx.tar 
cd rar-xxx 
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) { 
$entry->extract('/dir/extract/to/'); /*/dir/extract/to/換成其他路徑即可*/ 

rar_close($rar_file); 
?> 


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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产99在线精品一区二区 | 免费的强动漫人物 | 唯美清纯 自拍偷 | 亚洲成年网站在线观看 | 我半夜摸妺妺的奶C了她 | 亚洲色图第四页 | 天天综合五月天 | 91久久精品视频 | 国产高清久久 | 亚洲国产天堂久久综合网站 | 国产图色 | 啾咪成人漫画免费 | 亚洲精品国产SUV | 日韩一 | 欧美一级裸片又黄又裸 | 白俄罗斯bbbsss | 亚洲ss| 欧美整片在线 | 欧美一级专区免费大片俄罗斯 | 国产亚洲精品福利在线 | 91大神亚洲影视在线 | 羞羞私人影院可以直接免费观影吗 | a级片欧美 | 午夜国产福利视频一区 | 亚洲国产日韩欧美一区二区三区 | 朝鲜女人free性xxe | 精品国内自产拍在线视频 | 精品日韩一区二区三区 | 亚洲图片综合区 | 公妇乱淫在线播放免费观看 | 91大片淫黄大片在线天堂 | 天堂在线国产 | 调教全程肉动画片在线观看 | 女仆色在线观看 | 精品久久久麻豆国产精品 | 国内自拍网红在综合图区 | 四虎影院在线免费观看 | 国产成人精品免费 | 国产好痛疼轻点好爽的视频 | 四虎精品成人免费视频 | 学校捏奶揉下面污文h |