Php 拔出拉链';s文件名,其中根是目录
您好,我正在寻找一种方法来提取ZIP的文件名,并在我的网站上创建一个ZIP内容树。我不想提取文件本身,我只想在zip文件中循环并打印出它的内容 这包括,子文件夹等。 我找到了一个很好的答案,使用以下代码作为解决方案:Php 拔出拉链';s文件名,其中根是目录,php,zip,Php,Zip,您好,我正在寻找一种方法来提取ZIP的文件名,并在我的网站上创建一个ZIP内容树。我不想提取文件本身,我只想在zip文件中循环并打印出它的内容 这包括,子文件夹等。 我找到了一个很好的答案,使用以下代码作为解决方案: $zip = new ZipArchive; if ($zip->open('source.zip') === TRUE) { for($i = 0; $i < $zip->numFiles; $i++) { $f
$zip = new ZipArchive;
if ($zip->open('source.zip') === TRUE)
{
for($i = 0; $i < $zip->numFiles; $i++)
{
$fp = $zip->getStream($zip->getNameIndex($i));
if(!$fp) exit("failed\n");
while (!feof($fp)) {
$contents = fread($fp, 8192);
// do some stuff
}
fclose($fp);
}
}
else
{
echo 'Error reading zip-archive!';
}
$zip=新的ZipArchive;
如果($zip->open('source.zip')==TRUE)
{
对于($i=0;$i<$zip->numFiles;$i++)
{
$fp=$zip->getStream($zip->getNameIndex($i));
如果(!$fp)退出(“失败”\n);
而(!feof($fp)){
$contents=fread($fp,8192);
//做点什么
}
fclose($fp);
}
}
其他的
{
echo“读取zip存档文件时出错!”;
}
但这对子目录不起作用
但我发现的另一个差距是,如果整个zip存档只有一个根目录,并且在这个目录中有所有其他文件,那么$zip->numFiles方法将返回0,因此循环(在上面的示例中)将不会运行
所以总的来说,我认为这并不总是有效的。我认为一个解决方案是递归,但这将很难实现,所以我正在寻找替代方案