加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP回显所有子文件夹图像

发布时间:2020-12-13 16:09:42 所属栏目:PHP教程 来源:网络整理
导读:我有一个包含图像的子文件夹的目录.我需要在一个页面上显示所有这些,以及它们的文件夹名称,所以像这样: echo子文件夹名称 ?回声图像,图像,图像 echo Subfolder2名称 ?echo image2,image2,image2 等 我试过用了 $images = glob($directory . "*.jpg"); 但问
我有一个包含图像的子文件夹的目录.我需要在一个页面上显示所有这些,以及它们的文件夹名称,所以像这样:

> echo子文件夹名称
?回声图像,图像,图像
> echo Subfolder2名称
?echo image2,image2,image2
>等

我试过用了

$images = glob($directory . "*.jpg");

但问题是我必须在$directory中准确定义子文件夹名称,如“path / folder / subfolder /”;

是否有任何选项,如一些“通配符”,将检查所有子文件夹和回显foreach子文件夹名称及其内容?

此外,由于我无法控制的服务器限制,因此无法在此处应用opendir和scandir.

解决方法

Glob通常有一个递归通配符,写成/ ** /,但PHP Glob函数不支持它.所以唯一的方法就是编写自己的函数.这是一个支持递归通配符的简单方法:

<?php
function recursiveGlob($pattern)
{
    $subPatterns = explode('/**/',$pattern);

    // Get sub dirs
    $dirs = glob(array_shift($subPatterns) . '/*',GLOB_ONLYDIR);

    // Get files in the current dir
    $files = glob($pattern);

    foreach ($dirs as $dir) {
        $subDirList = recursiveGlob($dir . '/**/' . implode('/**/',$subPatterns));

        $files = array_merge($files,$subDirList);
    }

    return $files;
}

像$files = recursiveGlob(“mainDir / ** / * .jpg”)那样使用它;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读