子目录中的PHP glob图像并查找主父文件夹

时间:2016-09-16 17:50:34

标签: php jquery directory fancybox-2 glob

我使用PHP glob创建了一个动态图库来读取目录和这些目录中的图像,然后为每个目录生成链接,其中包含隐藏的图像链接。这很好。

我现在试图解决的问题是(1)如何从子目录中获取图像,以及(2)确保rel属性正确,以便将它们添加到正确的画廊。

现在我通过将图片文件作为变量并使用rel抓取其父级来抓取basename(dirname($image))

这需要是动态的,因为没有办法知道子文件夹是什么,是否会有子文件夹,以及子文件夹的深度。最有可能是/_samples/文件夹中每个图库的主文件夹中最多的2个级别,但我不确定,所以它需要允许任何深度 - 然后正确找到名称画廊目录。

并非它应该重要,但我为图像生成完整路径,因为当使用https的相对路径时,FancyBox2会抛出404。

<main>

    <?php
    // LIST DIRECTORIES AS LINKS & PREP FOR FANCYBOX
    define('BASE', $_SERVER['DOCUMENT_ROOT']);
    // directory name
    $directory = BASE . "/" . "_samples/";

    // get in directory
    $folders = glob($directory . "*", GLOB_ONLYDIR);

    $d = 0; // init dir array count
    $f = 0; // init file array count
    $folder_list = array();
    $image_list = array();
    $image_links = array();
    ?>
    <ul id="folder-list" class="cf">
    <?php
    // directories
    foreach($folders as $folder) { 
        if(is_dir($folder)) {
            array($l['directory'][$d] =  $folder);
            $d++;
            $nb = basename($folder) == "index" ? "1" : basename($folder);
            $folder_list[$nb] = '<li><a class="icon-folder fancybox-trigger" data-trigger-rel="' . basename($folder) . '" href="#">' . $nb . '</a></li>';

        } else {
            // nada
        }
    }
    ksort($folder_list);
    foreach ($folder_list as $sample_folder){
        echo $sample_folder;
    }
    ?>
    </ul>

    <div class="hidden-links" style="display:none;">
    <?php
    $folders2 = glob($directory . "*", GLOB_ONLYDIR|GLOB_MARK);
    foreach($folders2 as $folder2){
        $image_files = glob($folder2 .'*.{jpg,png}', GLOB_BRACE);
    }
    $image_files2 = glob($directory . '*/*.{jpg,png}', GLOB_BRACE);
    foreach($image_files2 as $image) {
        $image_name = basename($image);
        $parent_folder = basename(dirname($image));
        echo '<a class="fancybox" data-fancybox-title="' . $parent_folder . ' : ' . $image_name . '" rel="' . $parent_folder . '" href="'. 'https://subdmain.mydomain.com/_samples/' . $parent_folder . '/' . $image_name . '">&nbsp;</a>';
    }
    ?>
    </div>

</main>

0 个答案:

没有答案