zip_read

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

zip_read读取 ZIP 文件归档中的下一个条目

警告

此函数自 PHP 8.0.0 起已弃用。强烈建议不要依赖此函数。

描述

zip_read(resource $zip): resource|false

读取 ZIP 文件归档中的下一个条目。

参数

zip

先前使用 zip_open() 打开的 ZIP 文件。

返回值

返回一个目录条目资源,供以后与 zip_entry_... 函数一起使用,如果没有任何更多条目要读取,则返回 false,如果发生错误,则返回错误代码。

变更日志

版本 描述
8.0.0 此函数已被弃用,建议使用对象 API,请参见 ZipArchive::statIndex()

参见

添加备注

用户贡献的备注 3 则备注

7
匿名
5 年前
*这是一个简单的示例*
<?php
$zp
= zip_open('file.zip');

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

输出将类似于

myfile.txt
mydir/
1
Christian
11 年前
注意:即使您的存档包含更多条目,也只会返回前 65535 个条目。有关详细信息,请参见 https://bugs.php.net/bug.php?id=59118
-17
nico at nicoswd dot com
16 年前
如果您遇到以下错误

警告:zip_read() 期待参数 1 为资源,却给出了整数,位于 xxxxxx 的第 x 行

这是因为 zip_open() 无法打开文件并返回错误代码而不是资源。我花了很长时间才弄清楚为什么它无法打开文件,直到我尝试使用文件的完整路径。

<?php

// 即使文件存在,zip_open() 也会返回错误代码。
$file = 'file.zip';
$zip = zip_open($file);

// 解决方案:
$file = getcwd() . '/file.zip';

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

?>

这至少在我的 Windows 上有效。我不确定其他平台是否也适用。
To Top