php如何读取zip内目录
您可使用以下代码来读取zip文件内的目录:
$zip = new ZipArchive;
if ($zip->open('file.zip') === TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
if (substr($filename, ⑴) == '/') {
echo $filename . "
";
}
}
$zip->close();
}
在上面的示例中,我们首先创建一个ZipArchive对象,然后打开zip文件。使用getNameIndex()
方法可以获得zip文件内每一个文件的名称,然后我们检查文件名的最后一个字符是否是为'/'
,如果是的话,说明该文件是一个目录。我们将目录名称打印出来。
请注意,上述代码只能读取zip文件内的目录,没法读取目录内的文件。如果您需要读取目录内的文件,请参考以下代码:
$zip = new ZipArchive;
if ($zip->open('file.zip') === TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
if (substr($filename, ⑴) != '/') {
$dirname = dirname($filename);
if (!in_array($dirname, $directories)) {
$directories[] = $dirname;
echo $dirname . "
";
}
}
}
$zip->close();
}
在上面的代码中,我们使用dirname()
函数获得文件的目录名称,并使用一个数组$directories
来存储已读取的目录名称,以免重复输出。
TOP