この記事では主に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、ooxx.jpg) が含まれています
コードは次のとおりです:
さらに操作するにはzipファイルを開いてください
ZipArchive::open
(PHP 5 >= 5.2.0、PECL zip >= 1.1.0)
混合 ZipArchive::open ( string $filename [, int $flags ] )
第2パラメータの説明
ZIPARCHIVE::OVERWRITE は常に新しいファイルを作成します。指定された zip ファイルが存在する場合は上書きされます
ZIPARCHIVE::CREATE 指定された zip ファイルが存在しない場合は、新しい zip ファイルを作成します
ZIPARCHIVE::EXCL 指定された zip ファイルが存在する場合、エラーが報告されます
ZIPARCHIVE::チェックコン
戻り値:
戻り値が以下のプロパティと等しい場合、対応するエラーを示すか、TRUEを返します
$res == ZipArchive::ER_EXISTS ファイルは既に存在します (ファイルは既に存在します)
$res == ZipArchive::ER_INCONS Zip アーカイブに一貫性がありません (圧縮ファイルに一貫性がありません)
$res == ZipArchive::ER_INVAL 無効な引数 (無効なパラメータ)
$res == ZipArchive::ER_MEMORY Malloc エラー (メモリ エラー? これは不確かです)
$res == ZipArchive::ER_NOENT そのようなファイルはありません (そのようなファイルはありません)
$res == ZipArchive::ER_NOZIP zip アーカイブではありません (圧縮ファイルはありません)
$res == ZipArchive::ER_OPEN ファイルを開けません (ファイルを開けません)
$res == ZipArchive::ER_READ 読み取りエラー (読み取りエラー)
$res == ZipArchive::ER_SEEK シーク エラー
コードは次のとおりです:
ZipArchive::getNameIndex
string ZipArchive::getNameIndex ( int $index [, int $flags ] )
コードは次のとおりです:
コードは次のとおりです:
$zip = 新しい ZipArchive();
$res = $zip->open('test.zip');
if ($res === TRUE) {
$stream = $zip->getStream('hello.txt'); } その他 {
エコー「失敗しました、コード:」}
$zip->close(); $str = stream_get_contents($stream); // ここで取得したテキストのエンコーディングに注意してくださいコードは次のとおりです:
ZipArchive::renameName
(PHP 5 >= 5.2.0、PECL zip >= 1.5.0)
$zip = 新しい ZipArchive
string ZipArchive::getArchiveComment ([ int $flags ] )
パラメータ: ZipArchive::FL_UNCHANGEDパラメーターが ZipArchive::FL_UNCHANGED に設定されている場合、元の変更されていない注釈が返されます
たとえば、圧縮ファイルを処理する場合、setArchiveComment() メソッドを使用してコメントを変更または設定します
ZipArchive::FL_UNCHANGED パラメーターを追加すると、変更前の注釈コンテンツを取得することになります。それ以外の場合は、変更された注釈コンテンツを取得します
同様のものには次のものがあります:
ZipArchive::getCommentIndex は、圧縮ファイル内のファイル インデックスに基づいて [ファイル コメント] を取得します
ZipArchive::getCommentName 圧縮ファイル内のファイル名に基づいて [ファイルコメント] を取得します
注: これらはファイルのコメントであり、圧縮ファイル (zip) のコメントではありません
圧縮ファイルのコメント(zipファイルのコメント)を設定または変更する
ZipArchive::setArchiveComment
(PHP 5 >= 5.2.0、PECL zip >= 1.4.0)
bool ZipArchive::setArchiveComment ( string $comment )
コードは次のとおりです:
//$zip->addFromString('test.txt', 'ファイルの内容がここにあります'); $zip->setArchiveComment('新しいアーカイブ コメント'); $zip->close(); 「わかりました」とエコーします。 } その他 {
エコー「失敗しました」コードは次のとおりです:
$zip = 新しい ZipArchive();
それは、1 つ以上のファイルを zip ファイルに圧縮することです
1. 新しい ZipArchive オブジェクトのみが必要です
2. 次に、オブジェクトの open メソッドを使用して zip ファイルを作成します
3. 次に、addFile メソッドを使用して、作成した zip ファイルにパッケージ化するファイルを書き込みますコードは次のとおりです:
// 新しい ZipArchive オブジェクトを作成します
$zip = 新しい ZipArchive
;
$res = $zip->open('test.zip');
// オープニングが成功した場合
if ($res === TRUE) {
// オープンに失敗した場合
//エラーコードを出力する
エコー「失敗しました、コード:」}
$zip->close();