PHP递归文件夹扫描到多个数组(子文件夹和文件)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP递归文件夹扫描到多个数组(子文件夹和文件)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我现在有点迷失在这里.我的目标是递归扫描每个子文件夹中包含子文件夹和图像的文件夹,将其转换为多维数组,然后能够使用其包含的图像解析每个子文件夹.

我有以下开始代码,它基本上扫描包含文件的每个子文件夹,然后丢失以使其现在进入多数组.

$dir = 'data/uploads/farbmuster';
$results = array();

if(is_dir($dir)) {
    $ITerator = new Recursivedirectoryiterator($dir);

    foreach(new RecursiveiteratorIterator($iterator,RecursiveIteratorIterator::CHILD_First) as $file) {
        if($file->isFile()) {
            $thispath = str_replace('\\','/',$file->getPath());
            $thisfile = utf8_encode($file->getFilename());

            $results[] = 'path: ' . $thispath. ',filename: ' . $thisfile;
        }
    }
}

有人可以帮我弄这个吗?

提前致谢!

你可以试试
$dir = 'test/';
$results = array();
if (is_dir($dir)) {
    $iterator = new RecursiveDirectoryIterator($dir);
    foreach ( new RecursiveIteratorIterator($iterator,RecursiveIteratorIterator::CHILD_FIRST) as $file ) {
        if ($file->isFile()) {
            $thispath = str_replace('\\',$file);
            $thisfile = utf8_encode($file->getFilename());
            $results = array_merge_recursive($results,pathToArray($thispath));
        }
    }
}
echo "<PRe>";
print_r($results);

产量

Array
(
    [test] => Array
        (
            [css] => Array
                (
                    [0] => a.css
                    [1] => b.css
                    [2] => c.css
                    [3] => css.PHP
                    [4] => css.run.PHP
                )

            [CSV] => Array
                (
                    [0] => abc.csv
                )

            [image] => Array
                (
                    [0] => a.jpg
                    [1] => ab.jpg
                    [2] => a_rgb_0.jpg
                    [3] => a_rgb_1.jpg
                    [4] => a_rgb_2.jpg
                    [5] => f.jpg
                )

            [img] => Array
                (
                    [users] => Array
                        (
                            [0] => a.jpg
                            [1] => a_rgb_0.jpg
                        )

                )

        )

使用的功能

function pathToArray($path,$separator = '/') {
    if (($pos = strpos($path,$separator)) === false) {
        return array($path);
    }
    return array(substr($path,$pos) => pathToArray(substr($path,$pos + 1)));
}

脚本宝典总结

以上是脚本宝典为你收集整理的PHP递归文件夹扫描到多个数组(子文件夹和文件)全部内容,希望文章能够帮你解决PHP递归文件夹扫描到多个数组(子文件夹和文件)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。