ホームページ > バックエンド開発 > PHPチュートリアル > PHP実行 zip・rar解凍方法実装コード_PHPチュートリアル

PHP実行 zip・rar解凍方法実装コード_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:33:20
オリジナル
880 人が閲覧しました

Zip: PclZip http://www.phpconcept.net/pclzip/index.en.php
Rar: PECL rar http://pecl.php.net/package/rar
以前は、解凍プログラムを実行する必要がありました最も一般的な方法は、コマンドを記述し、exec() およびその他の実行関数を使用して実行することです。これは Windows では可能ですが、Unix に切り替えると、アカウントの権限の問題によりスムーズに実行されません。そのような方法はありますか? コマンドを発行せずに関数を直接使用する方法はありますか? 答えは「はい」です (使用できる方法を見つけるのに数日かかりました)。関数 (ただし、最初に ziplib 関数を持っている必要があります) がありますが、抽出に関する限り、組み込み関数はフォルダーに従ってファイルを抽出するのではなく、単にファイルを解凍するだけです。プログラム
これにより、抽出の機能が失われます
これから説明する PclZip には独自の拡張子があるため、Ziplib を持っているかどうかは関係ありません
インストールする必要はありません。再度使用する場合は含めてください
例: また、抽出部分では、単にファイルを解凍するのではなく、フォルダーの順序を変更します
関連する使用法は次のとおりです



コードをコピーします

コードは次のとおりです:

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') { /*データは別のパスに変更できます*/
die("Error : ".$archive->errorInfo (true));
?>


関数自体は、圧縮ファイルの最初の層がファイルであるかフォルダーであるかを判断しないため、ディレクトリが作成されます (これは、他の関連関数でもそれができるとは思えません)。 ! ! )
さらに大きな問題は、PHP 自体が rar 関連の機能を提供していないため、サードパーティの関数を使用する必要があることです。
PECL (The PHP Extension Community Library) があります。その中にある rar パッケージを使用します
ただし、手動でインストールする必要があります
Unix を使用している場合は、次のインストール方法を参照してください

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

インストール後は必ずApacheを再起動してください
インストール後にテストを行うことができます



コードをコピーします

コードは次のとおりです:

$rar_file = rar_open('example.rar') または die( "Rar アーカイブを開けませんでした"); /*example.rar は他のファイルに変更できます*/ $entries_list = rar_list($rar_file) ); print_r($entries_list);
?>


さらに重要 ポートのインストールを使用する場合、バージョンは比較的新しいことに注意してください (公式 Web サイトは 0.3.1 までであり、ポートのインストールはすでに行われています) 0.3.4まで)なので、使い方に多少の違いがあります
しかし、抽出の使い方に違いはありません
関連する使い方はこんな感じです


コードをコピー

コードは以下の通りです

< ;?php $rar_file = rar_open('example.rar') または die("Rar アーカイブを開けません"); /*example.rarChange 他のファイルに変換するだけです*/ $entries = rar_list($rar_file) ); foreach ($entries as $entry) {
$entry->extract('/dir/extract/to/'); /*/ dir/extract/to/ は別のパスに置き換えることができます*/
}
rar_close($rar_file);
?>


Zip部分と同様に、ディレクトリを自動作成するために使用すると良いでしょう。



http://www.bkjia.com/PHPjc/322598.html
www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/322598.html技術記事 Zip: PclZip http://www.phpconcept.net/pclzip/index.en.php RAR: PECL rar http://pecl.php.net/package/rar 以前は、以下の環境で解凍プログラムを実行する必要がありました。 php、これは最も一般的な方法です...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート