[英]Pull all images from multiple directories and display them with PHP
I have a folder on my server called 'images', and within that folder I could have a single folder to as many as 10 folders that contain images. 我的服务器上有一个名为“ images”的文件夹,在该文件夹中,我可以有一个文件夹,最多可以包含10个包含图像的文件夹。
Instead of writing a tag for each image 而不是为每个图像编写标签
<img src="images/people/001.jpg">
<img src="images/landscape/001.jpg">
etc etc 等
Can I use PHP to get all the images in all the folders in the main directory 'images'? 我可以使用PHP获取主目录“图像”中所有文件夹中的所有图像吗?
I have VERY little experience with PHP, so this is something I am struggling with. 我对PHP的经验很少,所以这是我一直在努力的事情。
I need php to return an array of ' <div class="box"><img src="images/FOLDER/IMAGENAME.jpg"></div>
' 我需要php返回“
<div class="box"><img src="images/FOLDER/IMAGENAME.jpg"></div>
的<div class="box"><img src="images/FOLDER/IMAGENAME.jpg"></div>
Maybe someone can help. 也许有人可以帮忙。
function ListFiles($dir) {
if($dh = opendir($dir)) {
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != ".." && $file[0] != '.') {
if(is_dir($dir . "/" . $file)) {
$inner_files = ListFiles($dir . "/" . $file);
if(is_array($inner_files)) $files = array_merge($files, $inner_files);
} else {
array_push($files, $dir . "/" . $file);
}
}
}
closedir($dh);
return $files;
}
}
foreach (ListFiles('/path/to/images') as $key=>$file){
echo "<div class=\"box\"><img src=\"$file\"/></div>";
}
Something like this? 像这样吗
A simpler soluton. 更简单的解决方案。 You can use built-in glob function.
您可以使用内置的glob函数。 Assuming that all of your images are
.jpg
: 假设您所有的图片都是
.jpg
:
$result = array();
$dir = 'images/';
foreach(glob($dir.'*.jpg') as $filename) {
$result[] = "<div class=\"box\"><img src=\"$filename\"></div>";
}
Then you can echo each element of $result
or whatever you want. 然后,您可以回显
$result
每个元素或所需的任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.