欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP執(zhí)行zip與rar解壓縮方法實現代碼

 更新時間:2010年12月05日 13:46:41   作者:  
PHP執(zhí)行zip與rar解壓縮方法 先放著,以后研究,有地方要用到。
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話會礙于帳號權限問題而無法順利執(zhí)行
那有沒有那種本身就有提供函式可以直接使用而不需要去下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部分一樣,若搭配自動建立目錄會更好

相關文章

  • PHP取整函數:ceil,floor,round,intval的區(qū)別詳細解析

    PHP取整函數:ceil,floor,round,intval的區(qū)別詳細解析

    以下是對PHP中的取整函數:ceil,floor,round,intval的區(qū)別進行了詳細的介紹,需要的朋友可以過來參考下
    2013-08-08
  • 關于PHP自動判斷字符集并轉碼的詳解

    關于PHP自動判斷字符集并轉碼的詳解

    本篇文章是對PHP自動判斷字符集并轉碼進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP把MSSQL數據導入到MYSQL的方法

    PHP把MSSQL數據導入到MYSQL的方法

    這篇文章主要介紹了PHP把MSSQL數據導入到MYSQL的方法,分別列舉了兩個實例實現將MSSQL數據導入到MYSQL的功能,是非常實用的技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • PHP使用file_get_content設置頭信息的方法

    PHP使用file_get_content設置頭信息的方法

    這篇文章主要介紹了PHP使用file_get_content設置頭信息的方法,結合實例形式對比分析了PHP使用fopen及file_get_contents設置及獲取頭信息的相關技巧,需要的朋友可以參考下
    2016-02-02
  • php生成隨機驗證碼圖片的示例代碼

    php生成隨機驗證碼圖片的示例代碼

    這篇文章主要介紹了php生成隨機驗證碼圖片的示例代碼,結合實例形式分析了php生成隨機驗證碼圖片的實現方法與相關操作注意事項,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-09-09
  • php實現的順序線性表示例

    php實現的順序線性表示例

    這篇文章主要介紹了php實現的順序線性表,結合實例形式分析了PHP順序線性表的定義、元素獲取、插入、刪除等相關操作技巧,需要的朋友可以參考下
    2019-05-05
  • PHP高效處理前端數據過濾二維數組并存入數據庫

    PHP高效處理前端數據過濾二維數組并存入數據庫

    這篇文章主要介紹了PHP高效處理前端數據過濾二維數組并存入數據庫,通過從二維數組獲取指定數據,組成新二維數組實現過程示例來為大家講解
    2023-10-10
  • wordpress之wp-settings.php

    wordpress之wp-settings.php

    wordpress之wp-settings.php...
    2007-08-08
  • php圖片加中文水印實現代碼分享

    php圖片加中文水印實現代碼分享

    php中要給中文加水印需要作一些簡單的處理,一就是要把字符轉換成gbk,還有就是要加載中文字體哦,有了這兩個條件在圖片加中文水印就簡單了。
    2012-10-10
  • php使用CURL偽造IP和來源實例詳解

    php使用CURL偽造IP和來源實例詳解

    這篇文章主要介紹了php使用CURL偽造IP和來源的方法,以實例形式詳細分析了CURL偽造IP和來源的原理與實現技巧,并補充說明了PHP中的CURL函數庫常用函數,需要的朋友可以參考下
    2015-01-01

最新評論