我正在尝试从zip文件中的文件中获取所有文件名。在zip文件包含另一个zip文件之前,所有方法都可以正常工作,我也尝试从包含的zip中获取包含的文件名。 我想获取所有包含的文件名而不提取文件。
由于某种原因,它总是拒绝打开包含的zip文件,好像它无法将其识别为zip文件一样。 为了100%确保它是一个用于测试的zip,我只在主zip中包含了相同的zip。 在正确读取主zip文件的同时,如果我想读取包含的文件,则返回false。
我已经尝试使此脚本运行3天了,但是我一直失败,所以我决定看看这里是否有人可以帮助我解决这个问题。
这是我用来读取zipfile内容的脚本:
function firstzipper($file) {
global $filesroot, $pagefile;
$zipinc = new ZipArchive();
if ($zipinc->open($file) === TRUE) {
for ($i = 0; $i < $zipinc->numFiles; $i++) {
$filename_full = $zipinc->getNameIndex($i);
$filename = substr($filename_full, strrpos($filename_full, '/') + 1);
if (!is_dir($filename)) {
$filename = filter_var($filename, FILTER_SANITIZE_STRING);
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext == 'zip') {
secondzipper($filesroot.$pagefile.'/'.$filename_full);
}
}
array_push($inc_files_arr,$filename);
}
return $inc_files_arr;
}
}
firstzipper($ filesroot。$ url);
上面功能内的secondzipper只是相同的功能,已复制并重命名。
zip文件如下所示: E:/myfolder/fileserver/temper.zip/myincluded.zip
该函数打开temper.zip,但在myincluded.zip上返回false。
我希望我已经包含了所有需要的信息,如果没有让我知道,请补充其他要求。