Web aym.pekori.to

CLXXVI. Zipファイル関数 (読込のみ)

導入

このモジュールにより、ZIP 圧縮されたアーカイブとその内部のファイルを 透過的に読み込むことが可能となります。

要件

このモジュールは、Guido Draheim により作成されたライブラリ ZZIPlib の関数を使用します。 ZZIPlib バージョン >= 0.10.6 が必要です。

PECL パッケージのバージョン 1.1.0 以降では、 外部パッケージを必要としなくなりました。また、書き込み (作成および変更) モードが提供されるようになりました。 新しい機能はまだドキュメント化されていないので、 パッケージに含まれる例を参照ください。

ZZIPlib は ZIP の圧縮アルゴリズムの完全な実装で提供される関数の サブセットであり、ZIP ファイルアーカイブの読込みのみができることに 注意してください。このライブラリで読み込まれる ZIP ファイルアーカイブを 作成するには、通常の ZIP ユーティリティが必要です。

インストール手順

この PECL 拡張 モジュールは PHP にバンドルされていません。 この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 http://pecl.php.net/package/zip.

PHP 4 の場合、この PECL 拡張モジュール のソースは、PHP のソースの ext/ ディレクトリ、または 上の PECL リンクで入手可能です。 Zipサポートを有効にするには、PHPのコンパイル時にconfigureのオプションに --with-zip[=DIR] を指定してコンパイルする必要があります。

Windowsユーザは、php.ini の中でphp_zip.dll を有効にすることにより、これらの関数を PHP 4 の場合、この DLL は PHP の Windows ダウンロードバイナリの extensions/ ディレクトリ にあります。 この PECL 拡張モジュール の DLL PHP ダウンロード ページ または http://snaps.php.net/ からダウンロードできます。

注意: Zipサポートは、PHP 4.1.0以前は実験的なものでした。この拡張モジュー ルは、PHP 4.1.0以降に存在するZIP拡張モジュールを反映しています。

実行時設定

設定ディレクティブは定義されていません。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

以下の例は、ZIP ファイルアーカイブをオープンし、そのアーカイブの中の 各ファイルを読み込んで、その内容を出力するものです。この例で使用されている test2.php アーカイブは、ZZIPlib ソース配布に含まれるテスト用のアーカイブの一つです。

例 1. 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ファイルアーカイブの中の次のエントリを読み込む