从另一个zip文件中的一个zip文件中读取文件名

时间:2018-09-13 13:23:22

标签: php zip filenames

我正在尝试从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。

我希望我已经包含了所有需要的信息,如果没有让我知道,请补充其他要求。

0 个答案:

没有答案