ホームページ >バックエンド開発 >PHPチュートリアル >PHPのzip解凍クラスPclZipの使い方まとめ
PHP zip を解凍するには、PHP に付属する解凍拡張機能の実装に加えて、さまざまな方法があります。ここでは、強力な PHP ZIP 圧縮クラスを紹介します。
PclZip ライブラリは、Zip 形式 (WinZip、PKZIP) の圧縮ファイルを圧縮および解凍する処理を実行します。圧縮ファイルの生成、圧縮ファイルの内容の一覧表示、ファイルの解凍などが含まれます。サーバー側で圧縮・解凍ができるので非常に便利です。
PclZip は PclZip カテゴリを定義し、そのカテゴリ オブジェクトは ZIP ファイルと見なすことができ、処理のためのメソッドも提供します。
1. 基本
すべての関数は、pclzip.lib.php ファイルによって提供されます。ホームページ (www.phpconcept.net/pclzip/index.en.php) をダウンロードします。すべての PKZIP ファイルは、実際には PclZip クラスのオブジェクトです。 PclZip ファイル (つまり、PclZip クラス オブジェクト) が生成されると、最初に圧縮ファイルが生成され、ファイル名が指定されていますが、この圧縮ファイルの内容はまだ存在しません:
< ?PHP <br /> require_once('pclzip.lib.php'); <br /> $archive = new PclZip("archive.zip"); <br />?>
このオブジェクト このファイルを処理するために、いくつかのパブリック メソッドが提供されています。
2. パラメータ
各メソッドには、必須パラメータとオプションのパラメータを含む、使用できる独自のパラメータがあります。上記の例では、< ?PHP <br /> require_once('pclzip.lib.php'); <br /> $archive = new PclZip('archive.zip'); <br /> <br /> $v_list = $archive->add('dev/file.txt', <br /> PCLZIP_OPT_REMOVE_PATH, 'dev'); <br />?>
< ?PHP <br /> $list = $archive->extract(PCLZIP_OPT_PATH, "folder", <br /> PCLZIP_OPT_REMOVE_PATH, "data", <br /> PCLZIP_CB_PRE_EXTRACT, "callback_pre_extract",); <br />?>
上記の例では、圧縮ファイル内のファイルが保存されている元のパスは /data ですが、次のように指定することもできます。 /folder に解凍するように指定します。さらに、解凍前にコールバック関数 ('callback_pre_extract()') が呼び出されます。この関数を使用すると、ユーザーは解凍プロセス中にファイルの保存パスとファイル名を変更したり、解凍しない特定のファイルを選択したりできます。
3. 戻り値
各メソッドによって返される値は異なる場合がありますので、メソッドごとに説明します。ただし、ほとんどのメソッドは 0、エラー、または配列を返します。
4. エラー処理
バージョン 1.3 以降、エラー処理は PclZip カテゴリに統合されており、メソッドがエラー コードを返すと、エラー処理を容易にするための追加情報を取得できます。 errorName(): エラー名を返します< ?PHP<br /> include_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> $v_list = $archive->create('file.txt,data/text.txt,folder');<br /> if ($v_list == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br />?>次の例は、基本的に上記の例と同じ方法で archive.zip が生成されますが、その中に file.txt と text.txt が圧縮されている場合、パスが変更されることを示しています。 data/ から install/ に変更します。したがって、archive.zip 内のこれら 2 つのファイルのパスは、install/file.txt および install/text.txt
< ?PHP<br /> include_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> $v_list = $archive->create('data/file.txt,data/text.txt',<br /> PCLZIP_OPT_REMOVE_PATH, 'data',<br /> PCLZIP_OPT_ADD_PATH, 'install');<br /> if ($v_list == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br /><p>?></p>PHP zip になります。解凍 PclZip クラス インスタンス 1. 圧縮ファイルの内容を一覧表示します listContent(): ファイル属性とディレクトリを含む、圧縮ファイルの内容を一覧表示します。 🎜>
<span style="font-size: 14px;">< ?PHP</span><br /> include_once('pclzip.lib.php');<br /> $zip = new PclZip("test.zip");<br /> <br /> if (($list = $zip->listContent()) == 0) {<br /> die("Error : ".$zip->errorInfo(true));<br /> }<br /> <br /> for ($i=0; $i<sizeof ($list); $i++) {<br /> for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) {<br /> echo "File $i / [$key] = ".$list[$i][$key]."<br />";<br /> }<br /> echo "<br />";<br /> }<br /><p>?><span style="font-size: 14px;">上記の例は結果を返します:
File 0 / [filename] = data/file1.txt
File 0 / [保存ファイル名] = data/file1.txt2. Unzip Archive
extract([オプション リスト]): PKZIP 内のアーカイブまたはディレクトリを抽出します。 [オプションリスト] 利用可能なパラメータ。これらのパラメータを使用すると、ユーザーは解凍時に、解凍されたファイルのパスを変更する指定、特定のファイルのみを解凍するか特定のファイルを解凍しない指定、ファイルを文字列出力に変換するなど、より多くのオプションを使用できるようになります。 Readme ファイルに使用されます)。次の例は、archive.zip ファイルを現在のディレクトリに解凍する簡単な例です。
次の例は、高度な解凍の例です。 ファイルの使用法、archive.zip 内のすべてのファイルこれらは data/ で解凍され、install/release で特に指定されたすべてのファイルも、data/install/ release ではなく data/ に直接スローされます。<span style="font-size: 14px;">< ?PHP</span><br /> require_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> <br /> <br /> if ($archive->extract() == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br />?>
< ?PHP<br /> include('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> if ($archive->extract(PCLZIP_OPT_PATH, 'data',<br /> PCLZIP_OPT_REMOVE_PATH, 'install/release') == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br /><p>?>プロジェクト アドレス: http://www .phpconcept.net/pclzip/