PHP>扫描图像的文件夹/子文件夹>为每个文件夹生成数组

时间:2015-10-05 06:33:59

标签: php arrays sorting

我想自动化图片库,因为我需要首先扫描图库文件夹中的图像。其次,我需要在数组中分隔文件夹。例如:

到目前为止,这是我的代码:

    $path = '/public_html/images/gallery/';

$directory = new RecursiveDirectoryIterator($path,RecursiveDirectoryIterator::SKIP_DOTS);
$iterator = new RecursiveIteratorIterator($directory,RecursiveIteratorIterator::LEAVES_ONLY);

$extensions = array("jpg", "jpeg");

foreach ($iterator as $fileinfo) {
    if (in_array($fileinfo->getExtension(), $extensions)) {
        $files[] = $fileinfo->getPathname();
    }
}
/** print_r ($files); */

echo '<ul>';
foreach($files as $p){

 echo '<li>'.$p.'</li>';
}
echo '</ul>';

这将使用它的子文件夹输出该文件夹中的所有图像。我真正知道的是如何从每个文件夹的$ files数组,x子数组中提取。例如:

$files = {folder1/1.jpg, folder1/2.jpg, folder1/3.jpg, folder2/1.jpg, folder2/2.jpg }

接下来我想将文件夹解压缩到arrayx:

$folder1 = {folder1/1.jpg, folder1/2.jpg, folder1/3.jpg}
$folder2 = {folder2/1.jpg, folder2/2.jpg}

由此我可以处理它以生成灯箱条目。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试通过将文件夹名称添加为键来使数组成为多维:

foreach ($iterator as $fileinfo) {
    if (in_array($fileinfo->getExtension(), $extensions)) {
        $files[$fileinfo->getPath()][] = $fileinfo->getPathname();
    }
}

现在,您应该根据路径将不同的文件分成不同的数组:

$files["path1"][0] = file1;
$files["path1"][1] = file2;
$files["path2"][0] = file1;
$files["path2"][1] = file2;