*这是一个简单的示例*
<?php
$zp = zip_open('file.zip');
while ($file = zip_read($zp)) {
echo zip_entry_name($file).PHP_EOL;
}
?>
输出将类似于
myfile.txt
mydir/
(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_entry_...
函数一起使用,如果没有任何更多条目要读取,则返回 false
,如果发生错误,则返回错误代码。
*这是一个简单的示例*
<?php
$zp = zip_open('file.zip');
while ($file = zip_read($zp)) {
echo zip_entry_name($file).PHP_EOL;
}
?>
输出将类似于
myfile.txt
mydir/
如果您遇到以下错误
警告: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 上有效。我不确定其他平台是否也适用。