PHP ZipArchive只列出一级文件/文件夹

eqoofvh9  于 2023-01-12  发布在  PHP
关注(0)|答案(1)|浏览(154)

我有wp.zip,只想列出一级文件/文件夹。我的当前代码:

$zip = new \ZipArchive();
$zip->open('wp.zip'), \ZipArchive::RDONLY);

for ($i = 0; $i < $zip->numFiles; $i++) {
 $stat = $zip->statIndex($i);
 echo $stat['name'] . ' ';
}

这段代码递归地吐出整个文件列表。
我只需要第一层,像这样:

wp-admin/ 
wp-content/ 
index.php 
config.php 
<...>

实现目标的最佳方法是什么?

pdsfdshx

pdsfdshx1#

是的,您只能解析名称并相应地获得文件的级别。

<?php

$zip = new \ZipArchive();
$zip->open('wp.zip');

function getEntryList($zip, $level = 1){
    $res = [];
    for($i = 0; $i < $zip->numFiles; ++$i){
        $name = explode("/", trim($zip->statIndex($i)['name'],"/"));
        if(count($name) == $level + 1){
            $res[] = end($name);
        }
    }
    return $res;
}

print_r(getEntryList($zip));

相关问题