日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php执行zip压缩,PHP执行zip与rar解压缩方法实现代码

發(fā)布時間:2023/12/13 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php执行zip压缩,PHP执行zip与rar解压缩方法实现代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Zip:PclZip http://www.phpconcept.net/pclzip/index.en.php

Rar:PECL rar http://pecl.php.net/package/rar

以往過去要在php下執(zhí)行解壓縮程序,無非最常見的方法是寫command 然后用exec()等執(zhí)行函式去跑

這在Windows下或許可以,但換成Unix話會礙于帳號權(quán)限問題而無法順利執(zhí)行

那有沒有那種本身就有提供函式可以直接使用而不需要去下command去跑的方法呢

答桉有(話說找了好幾天才找到可以用的方法......XD)

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

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

這樣就失去extract的作用

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

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

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

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

相關用法像這樣

復制代碼代碼如下:

require_once('pclzip.lib.php');

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

if ($archive->extract() == 0) { /*解壓縮路徑跟原始檔相同路徑*/

die("Error : ".$archive->errorInfo(true));

}

?>

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

復制代碼代碼如下:

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

安裝完后可以做測試

復制代碼代碼如下:

$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 安裝話,版本會比較新(官網(wǎng)只有到0.3.1,port 安裝話已經(jīng)到0.3.4),所以用法上會有些出入

但extract用法上并無差異

相關用法像這樣

復制代碼代碼如下:

$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部分一樣,若搭配自動建立目錄會更好

總結(jié)

以上是生活随笔為你收集整理的php执行zip压缩,PHP执行zip与rar解压缩方法实现代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。