我使用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 . '"> </a>';
}
?>
</div>
</main>