PHPでは、 zip_read()は、zip圧縮パッケージのエントリを読み取るために使用される関数です。通常、 zip_open()で使用され、開発者がzipファイルで個々のファイルまたはディレクトリエントリを通過できるため、圧縮パッケージを操作および処理できます。
resource zip_read(resource $zip);
パラメーター説明:
$ zip : zip_open()によって返されたzipリソースハンドル。
返品値:
成功したら、ZIPエントリにリソースハンドルを返します。
障害時にfalsを返します。
zip_read()には、zipリソースハンドルであるパラメーターが1つだけです。このハンドルは、zip_open()関数を介してzipファイルを開いた後に取得されます。
例えば:
$zip = zip_open('http://m66.net/path/to/your.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
// 右 $entry 実行する
}
zip_close($zip);
}
通常、 zip_read()と組み合わせて他の関数を使用して、次のようなzipファイルのファイルの読み取りを実現します。
ZIP_ENTRY_NAME()現在のエントリの名前を取得します。
ZIP_ENTRY_FILESIZE()現在のエントリのサイズを取得します。
ZIP_ENTRY_OPEN()は、現在のエントリを開き、その内容を読み取ります。
zip_entry_read()エントリのコンテンツを読み取ります。
ZIP_ENTRY_CLOSE()現在のエントリを閉じます。
サンプルコードは次のとおりです。
$zip = zip_open('http://m66.net/files/example.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
echo "ファイル名: $name\n";
if (zip_entry_open($zip, $entry)) {
$size = zip_entry_filesize($entry);
$contents = zip_entry_read($entry, $size);
echo "ファイルコンテンツ:\n$contents\n";
zip_entry_close($entry);
}
}
zip_close($zip);
} else {
echo "開くことができませんZIP書類";
}
この例では:
zip_open()経由でhttp://m66.net/files/example.zipにあるリモートzipファイルを開きます。
zip_read()を使用して、すべてのエントリをループします。
zip_entry_name()を使用して、エントリ名を出力します。
zip_entry_open()とzip_entry_read()を使用して、エントリコンテンツを読み取ります。
エントリとzipリソースを閉じます。
zip_read()はzip_open()に依存し、最初にzipファイルリソースを正常に開く必要があります。
リモートZIPファイルを読み取るには、PHPのAllow_url_fopenを有効にする必要があります。
この関数は、ZIPの連続読み取りに適しており、ランダムアクセスエントリには適していません。
ファイル名のみをリストしたい場合は、パフォーマンスの消費を避けるために読み取りコンテンツを省略できます。