zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_readZip ファイルアーカイブの中の次のエントリを読み込む

警告

この関数は PHP 8.0.0 で 非推奨になります。この関数に頼らないことを強く推奨します。

説明

zip_read(resource $zip): resource|false

Zip ファイルアーカイブの中の次のエントリを読み込みます。

パラメータ

zip

zip_open() でオープン済みの ZIP ファイル。

戻り値

後で zip_entry_... 関数で使用されるディレクトリエントリリソース、または、 読み込むエントリがもうない場合に false、 その他のエラーが発生した場合はエラー番号を返します。

変更履歴

バージョン 説明
8.0.0 この関数は非推奨になりました。オブジェクト指向のAPIを使うのが望ましいです。 ZipArchive::statIndex() を参照ください。

参考

  • zip_open() - Zip ファイルアーカイブをオープンする
  • zip_close() - ZIP ファイルアーカイブを閉じる
  • zip_entry_open() - 読込み用にディレクトリエントリをオープンする
  • zip_entry_read() - オープンされたディレクトリエントリから読み込む

add a note add a note

User Contributed Notes 3 notes

up
3
Anonymous
5 years ago
*Here is a simple example*
<?php
$zp
= zip_open('file.zip');

while (
$file = zip_read($zp)) {
    echo 
zip_entry_name($file).PHP_EOL;
}
?>

The output will be something similar to:

myfile.txt
mydir/
up
2
Christian
11 years ago
Note: Only the first 65535 entries will be returned, even if your archive contains more entries. See https://bugs.php.net/bug.php?id=59118 for details.
up
-17
nico at nicoswd dot com
17 years ago
If you get an error like this:

Warning: zip_read() expects parameter 1 to be resource, integer given in xxxxxx on line x

It's because zip_open() failed to open the file and returned an error code instead of a resource. It took me a while to figure out why it failed to open the file, until I tried to use the FULL path to the file.

<?php

// Even if the file exists, zip_open() will return an error code.
$file = 'file.zip';
$zip = zip_open($file);

// The workaround:
$file = getcwd() . '/file.zip';

// Or:
$file = 'C:\\path\\to\\file.zip';

?>

This worked for me on Windows at least. I'm not sure about other platforms.
To Top