Zip ファイル関数とは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > プログラミング言語 > PHP > Zip ファイル関数の意味・解説 

Zip ファイル関数

この » PECL 拡張 モジュールは PHP にバンドルされていません。 この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » http://pecl.php.net/package/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 — 指定した名前のエントリに対するすべての変更を取り消す




固有名詞の分類

このページでは「PHP関数リファレンス」からZip ファイル関数を検索した結果を表示しています。
Weblioに収録されているすべての辞書からZip ファイル関数を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からZip ファイル関数を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Zip ファイル関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Zip ファイル関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS