PHPはZIP圧縮、解凍類ZipArchivのマニュアルを持参しています。


このPHP拡張クラスを使用するには(PHP 5>=5.2.0、PECL zip>=1.1.0)が必要です。一部の方法はPHP 5.2.+、PHP.ini配置はzipに対応しています。
winシステムに対して、直接php_を取り除きます。zip.dll拡張のコメントは、httpサービス(IISまたはApache)を再起動すればいいです。
Linuxはまだテストしていないので、理論的な違いはそんなに大きくないです。
 機能:
1、zipファイルを展開する
2、書類をzipファイルに圧縮する
3、zipファイルにファイルを追加する
4、フォルダをzipファイルに包装する(繰り返しファイルを追加する必要があります。空のフォルダを作成します)
5、圧縮ファイルの項目を削除する
-------------ZipArchive対象常用方法紹介---------
テストの約束:
 テストファイルはtext.zipで、この圧縮ファイルは3つの圧縮されたファイル(hello.txt、word.txt、ooxt.jpg)を含んでおります。

text.zip
     hello.txt
     word.txt
     ooxx.jpg
zipファイルを開いて、さらに操作します。
ZipArchive:open
 (PHP 5>=5.2.0,PECL zip==1.1.0)
 mixed ZipArchive:open(string$filename[,int$flags])
第2のパラメータ解説
ZARTIVE:OVERWRITE    常に新しいファイルを作成します。指定されたzipファイルが存在すると上書きされます。
ZIPPO:CREATE        指定されたzipファイルが存在しない場合、新規に作成します。
ZIPPO:EXCL        指定されたzipファイルが存在するとエラーが発生します。   
ZIPPO:CHECK CONS
戻り値: 
 戻り値が以下の属性に等しい場合、対応するエラーまたはTRUEに戻ることを表す。
 $res==ZipArchive:ER_EXISTS    File already exists.(ファイルは既に存在します)
$res==ZipArchive:ER_INCONS    Zip archive inconsistent.(圧縮ファイルが一致しない)
$res==ZipArchive:ER_INVAL    Invalid argment.(無効なパラメータ)
$res==ZipArchive:ER_MEMORY    Malloc failure.(メモリエラー?これは不確実です
$res==ZipArchive:ER_NOENT    No such file.(このようなファイルはありません)
$res==ZipArchive:ER_NOZIP    Not a zip archive.(圧縮ファイルは一つもありません)
$res==ZipArchive:ER_OPEN        Can't open file.(ファイルを開けません)
$res==ZipArchive:ER_READ        リードerror.(読み取りエラー)
$res==ZipArchive:ER_SEEK        Seek error.(検索エラー)

<?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     echo 'ok';
     // test
    $zip->extractTo('test');
     $zip->close();
 } else {
     echo 'failed, code:' . $res;
 }
 ?>
圧縮ファイル内のリストインデックスから圧縮ファイルの名前を返します。
ZipArchive:get NameIndex
 string ZipArchive::get NameIndex(int$index[,int$flags])

 <?php
 $zip = new ZipArchive();
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     var_dump($zip->getNameIndex(0)); // hello.txt
     var_dump($zip->getNameIndex(1)); // word.txt
     var_dump($zip->getNameIndex(2)); // ooxx.jpg
 } else {
     echo 'failed, code:' . $res;
 }
 $zip->close();
 ?>
圧縮内のファイル名から、そのファイルのテキストストリームを取得する。
ZipArchive:get Stream
 resource ZipArchive:get Stream(stringドルname)

 <?php
 $zip = new ZipArchive();
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     $stream = $zip->getStream('hello.txt');
 } else {
     echo 'failed, code:' . $res;
 }
 $zip->close();
 $str = stream_get_contents($stream); //
var_dump($str);
 ?>
圧縮ファイル内の索引(0から)に従って圧縮ファイル内のファイル名を変更します。
ZipArchive:renameIndex
 book ZipArchive:renameIndex(int$index、string$newname)
 (PHP 5>=5.2.0,PECL zip>=1.5.0)
成功した場合はTRUEに戻り、失敗した場合はFALSEに戻ります。

<?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     // newname.txt
     $zip->renameIndex(0,'newname.txt');
     $zip->close();
 } else {
     echo 'failed, code:' . $res;
 }
 ?>
圧縮ファイル内のファイル名に基づいて、圧縮ファイル内のファイル名を変更します。
ZipArchive:renameName
 (PHP 5>=5.2.0,PECL zip>=1.5.0)

 <?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     // word.txt newword.txt
     $zip->renameName('word.txt','newword.txt');
     $zip->close();
 } else {
     echo 'failed, code:' . $res;
 }
 ?>
圧縮ファイルのコメント(zipのファイルコメント)を取得します。
ZipArchive::get Archivement
 (PHP 5>=5.2.0,PECL zip==1.1.0)
 string ZipArchive::getArchiveComment([int$flags])
パラメータ:ZipArchive:FL_UNCHANGED
パラメータがZipArchiveに設定されている場合:FL_UNCHANGEDは、元のコメントに戻ります。まだ変更されていません。
 例えば、この圧縮ファイルを扱う際に、setArchiveComment()方法でコメントを変更または設定する場合
 ZipArchiveを加えれば:FL_UNCHANGEDというパラメータは、変更された注釈の内容を取得することを表します。そうでないと変更された注釈の内容を取得します。
 似たようなものがあります
ZipArchive:get CommentIndex圧縮ファイル内のファイルインデックスから【ファイルコメント】を取得します。
ZipArchive:get CommentName    圧縮ファイル内のファイル名から【ファイルコメント】を取得します。
 ここはファイルのコメントです。圧縮ファイルのコメントではありません。
 圧縮ファイルのコメントの設定または変更(zipのファイルコメント)
ZipArchive::setArchiveCompment
 (PHP 5>=5.2.0,PECL zip>=1.4.0)
 ブックレットZipArchive::set ArchiveComment(string$comment)

 <?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip', ZipArchive::CREATE);
 if ($res === TRUE) {
     //$zip->addFromString('test.txt', 'file content goes here');
     $zip->setArchiveComment('new archive comment');
     $zip->close();
     echo 'ok';
 } else {
     echo 'failed';
 }
 ?>
圧縮ファイル内の索引から圧縮ファイル内のファイルを削除する(つまりファイル内の項目を削除する)
ZipArchive::deleteIndex
 (PHP 5>=5.2.0,PECL zip>=1.5.0)
一、どのようにzipファイルを解凍しますか?extractor()

 $zip = new ZipArchive();
一、圧縮ファイルはどうやって作成しますか?addFroomString()addFile()
一つ以上のファイルをzipファイルに包んでください。
1、new一つのZipArchiveオブジェクトだけが必要です。
2、次にオブジェクトのopenメソッドを使ってzipファイルを作成します。
3、次にaddFile方法を使って、パッケージ化するファイルを作成したばかりのzipファイルに書き込みます。
4、最後にそのオブジェクトを閉じることを覚えています。

<?php
 // ZipArchive
$zip = new ZipArchive;
 $res = $zip->open('test.zip');
 //
if ($res === TRUE) {
 //
} else {
     //
    echo 'failed, code:' . $res;
 }
 $zip->close();
以上述べましたが、この文章の内容は全部です。皆さんのために役に立つと思います。