Zip ファイル関数
設定ディレクティブは定義されていません。
リソース型
Zip モジュールでは二種類のリソース型が使用されます。 まず最初が Zip アーカイブを表す Zip directory で、 もうひとつはアーカイブのエントリを表す Zip Entry です。定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。ZipArchive はクラス定数を使用します。定数には フラグ (FL_)、エラー (ER_) あるいはモード (接頭辞なし) の三種類があります。
- ZIPARCHIVE::CREATE (integer)
- アーカイブが存在しない場合に、作成します。
- ZIPARCHIVE::OVERWRITE (integer)
- 常に新しいアーカイブを開始します。このモードは、 ファイルが既に存在する場合にはそれを上書きします。
- ZIPARCHIVE::EXCL (integer)
- アーカイブが既に存在する場合はエラーとします。
- ZIPARCHIVE::CHECKCONS (integer)
- アーカイブの一貫性チェックを別途行い、 失敗した場合はエラーとします。
- ZIPARCHIVE::FL_NOCASE (integer)
- 名前で検索する際に大文字小文字を区別しません。
- ZIPARCHIVE::FL_NODIR (integer)
- ディレクトリ要素を無視します。
- ZIPARCHIVE::FL_COMPRESSED (integer)
- 圧縮されたデータを読み込みます。
- ZIPARCHIVE::FL_UNCHANGED (integer)
- 元のデータを使用し、変更内容を無視します。
- ZIPARCHIVE::CM_DEFAULT (integer)
- 圧縮あるいは保存のどちらか有効なほうを実行します。
- ZIPARCHIVE::CM_STORE (integer)
- 保存します (圧縮しません)。
- ZIPARCHIVE::CM_SHRINK (integer)
- 圧縮します。
- ZIPARCHIVE::CM_REDUCE_1 (integer)
- reduced with factor 1
- ZIPARCHIVE::CM_REDUCE_2 (integer)
- reduced with factor 2
- ZIPARCHIVE::CM_REDUCE_3 (integer)
- reduced with factor 3
- ZIPARCHIVE::CM_REDUCE_4 (integer)
- reduced with factor 4
- ZIPARCHIVE::CM_IMPLODE (integer)
- imploded
- ZIPARCHIVE::CM_DEFLATE (integer)
- deflated
- ZIPARCHIVE::CM_DEFLATE64 (integer)
- deflate64
- ZIPARCHIVE::CM_PKWARE_IMPLODE (integer)
- PKWARE 方式。
- ZIPARCHIVE::CM_BZIP2 (integer)
- BZIP2 アルゴリズム。
- ZIPARCHIVE::ER_OK (integer)
- エラーはありません。
- ZIPARCHIVE::ER_MULTIDISK (integer)
- 複数ディスクの zip アーカイブはサポートされません。
- ZIPARCHIVE::ER_RENAME (integer)
- 一時ファイルの名前変更に失敗しました。
- ZIPARCHIVE::ER_CLOSE (integer)
- zip アーカイブのクローズに失敗しました。
- ZIPARCHIVE::ER_SEEK (integer)
- シークエラー。
- ZIPARCHIVE::ER_READ (integer)
- 読み込みエラー。
- ZIPARCHIVE::ER_WRITE (integer)
- 書き込みエラー。
- ZIPARCHIVE::ER_CRC (integer)
- CRC エラー。
- ZIPARCHIVE::ER_ZIPCLOSED (integer)
- zip アーカイブはクローズされました。
- ZIPARCHIVE::ER_NOENT (integer)
- そのファイルはありません。
- ZIPARCHIVE::ER_EXISTS (integer)
- ファイルが既に存在します。
- ZIPARCHIVE::ER_OPEN (integer)
- ファイルをオープンできません。
- ZIPARCHIVE::ER_TMPOPEN (integer)
- 一時ファイルの作成に失敗しました。
- ZIPARCHIVE::ER_ZLIB (integer)
- Zlib エラー。
- ZIPARCHIVE::ER_MEMORY (integer)
- メモリの確保に失敗しました。
- ZIPARCHIVE::ER_CHANGED (string)
- エントリが変更されました。
- ZIPARCHIVE::ER_COMPNOTSUPP (integer)
- 圧縮方式がサポートされていません。
- ZIPARCHIVE::ER_EOF (integer)
- 予期せぬ EOF です。
- ZIPARCHIVE::ER_INVAL (integer)
- 無効な引数です。
- ZIPARCHIVE::ER_NOZIP (integer)
- zip アーカイブではありません。
- ZIPARCHIVE::ER_INTERNAL (integer)
- 内部エラー。
- ZIPARCHIVE::ER_INCONS (integer)
- 矛盾した Zip アーカイブです。
- ZIPARCHIVE::ER_REMOVE (integer)
- ファイルを削除できません。
- ZIPARCHIVE::ER_DELETED (integer)
- エントリが削除されました。
例
例 2505. Zip アーカイブの作成
<?php
$zip = new ZipArchive();
$filename = "./test112.zip";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>
例 2506. アーカイブの詳細の出力および一覧表示
<?php
$za = new ZipArchive();
$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";
for ($i=0; $i<$za->numFiles;$i++) {
echo "index: $i\n";
print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?>
例 2507. Zip ストリームラッパーによる OpenOffice メタ情報の読み込み
<?php
$reader = new XMLReader();
$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
if ($reader->nodeType == XMLREADER::ELEMENT) {
$elm = $reader->name;
} else {
if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
break;
}
if (!trim($reader->value)) {
continue;
}
$odt_meta[$elm] = $reader->value;
}
}
print_r($odt_meta);
?>
この例は旧 API (PHP 4 用) を使用します。まず ZIP ファイルアーカイブをオープンし、アーカイブ内の各ファイルを読み込み、 その内容を出力します。この例で使用するアーカイブ test2.zip は、ZZIPlib のソース配布物に含まれているテスト用アーカイブのひとつです。
例 2508. Zip の使用例
<?php
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
?>
目次
- zip_close — ZIP ファイルアーカイブを閉じる
- zip_entry_close — ディレクトリエントリを閉じる
- zip_entry_compressedsize — ディレクトリエントリの圧縮時のサイズを取得する
- zip_entry_compressionmethod — ディレクトリエントリの圧縮方法を取得する
- zip_entry_filesize — ディレクトリエントリの実際のファイルサイズを取得する
- zip_entry_name — ディレクトリエントリの名前を取得する
- zip_entry_open — 読込み用にディレクトリエントリをオープンする
- zip_entry_read — オープンされたディレクトリエントリから読み込む
- zip_open — Zip ファイルアーカイブをオープンする
- zip_read — Zip ファイルアーカイブの中の次のエントリを読み込む
- ZipArchive::addFile — 指定したパスからファイルを ZIP アーカイブに追加する
- ZipArchive::addFromString — その内容を指定して、ファイルを ZIP アーカイブに追加する
- ZipArchive::close — アクティブな (オープンされた、あるいは新しく作成された) アーカイブを閉じる
- ZipArchive::deleteIndex — インデックスを使用して、アーカイブ内のエントリを削除する
- ZipArchive::deleteName — 名前を使用して、アーカイブからエントリを削除する
- ZipArchive::extractTo — アーカイブの内容を展開する
- ZipArchive::getArchiveComment — ZIP アーカイブのコメントを返す
- ZipArchive::getCommentIndex — エントリのインデックスを使用して、エントリのコメントを返す
- ZipArchive::getCommentName — エントリ名を使用して、エントリのコメントを返す
- ZipArchive::getFromIndex — インデックスを使用して、エントリの内容を返す
- ZipArchive::getFromName — 名前を使用して、エントリの内容を返す
- ZipArchive::getNameIndex — インデックスを使用して、エントリの名前を返す
- ZipArchive::getStream — 名前を使用して、エントリのファイルハンドラ (読み込み専用) を取得する
- ZipArchive::locateName — アーカイブ内のエントリのインデックスを返す
- ZipArchive::open — ZIP ファイルアーカイブをオープンする
- ZipArchive::renameIndex — インデックスを使用してエントリ名を変更する
- ZipArchive::renameName — 名前を使用してエントリ名を変更する
- ZipArchive::setArchiveComment — ZIP アーカイブのコメントを設定する
- ZipArchive::setCommentIndex — インデックスを使用してエントリのコメントを設定する
- ZipArchive::setCommentName — 名前を使用してエントリのコメントを設定する
- ZipArchive::statIndex — インデックスを使用してエントリの詳細を取得する
- ZipArchive::statName — 名前を使用してエントリの詳細を取得する
- ZipArchive::unchangeAll — アーカイブに対するすべての変更を取り消す
- ZipArchive::unchangeArchive — アーカイブ全体に対して行われたすべての変更を取り消す
- ZipArchive::unchangeIndex — 指定したインデックスのエントリに対するすべての変更を取り消す
- ZipArchive::unchangeName — 指定した名前のエントリに対するすべての変更を取り消す
固有名詞の分類
Weblioに収録されているすべての辞書からZip ファイル関数を検索する場合は、下記のリンクをクリックしてください。

- Zip ファイル関数のページへのリンク