PHP 回显所有子文件夹图像
PHP echo all subfolder images
我有一个包含图像的子文件夹的目录。我需要在一页上显示所有这些,还有它们的文件夹名称,所以像这样:
echo Subfolder name
echo image, image, image
echo Subfolder2 name
echo image2, image2 , image2
- 等
我试过使用
$images = glob($directory . "*.jpg");
但问题是我必须在 $directory
中准确定义子文件夹名称,例如 "path/folder/subfolder/";
有没有像 "wildcard" 这样的选项可以检查所有子文件夹并回显 foreach
子文件夹名称及其内容?
此外,由于我无法控制的服务器限制,opendir
和scandir
无法在此处应用。
Glob 通常有一个递归通配符,写成/**/,但是PHPGlob 函数不支持它。所以唯一的办法就是自己写一个函数。这是一个支持递归通配符的简单的:
<?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");
我有一个包含图像的子文件夹的目录。我需要在一页上显示所有这些,还有它们的文件夹名称,所以像这样:
echo Subfolder name
echo image, image, image
echo Subfolder2 name
echo image2, image2 , image2
- 等
我试过使用
$images = glob($directory . "*.jpg");
但问题是我必须在 $directory
中准确定义子文件夹名称,例如 "path/folder/subfolder/";
有没有像 "wildcard" 这样的选项可以检查所有子文件夹并回显 foreach
子文件夹名称及其内容?
此外,由于我无法控制的服务器限制,opendir
和scandir
无法在此处应用。
Glob 通常有一个递归通配符,写成/**/,但是PHPGlob 函数不支持它。所以唯一的办法就是自己写一个函数。这是一个支持递归通配符的简单的:
<?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");