我有一个名为“检查”的文件夹,其中有一些名为“位置1”,“位置2”,“位置3”等子文件夹, 10-20个PNG图像。PHP - 阅读文件夹,所有子文件夹和子文件夹中的文件
我想要做的是读取“检查”文件夹的目录,然后读取每个文件夹中的所有图像文件,然后将它们作为我的index.php网站上的图库返回。问题是我没有收到错误消息,但脚本不返回任何内容。我相信问题在于为每个子文件夹生成$ files变量,因为我部署了相同的脚本来读取另一个站点上的文件夹内容。
也许有人可以指出我正确的方向吗?
<?php
$dir = './inspections/';
if ($handle = opendir($dir))
{
$blacklist = array('.', '..', 'default', 'default.php', 'desc.txt');
while (false !== ($folder = readdir($handle)))
{
if (!in_array($folder, $blacklist))
{
if (file_exists($dir . $folder . '/desc.txt'))
{
while (false !== ($file = readdir($handle)))
{
if (!in_array($file, $blacklist))
{
$chain = file_get_contents($dir . $folder . '/chain.txt');
$website = file_get_contents($dir . $folder . '/website.txt');
$location = file_get_contents($dir . $folder . '/location.txt');
$desc = file_get_contents($dir . $folder . '/desc.txt', NULL, NULL, 0, 250) . '...';
echo "
<!-- Post -->
<div class=\"post\">
<div class=\"user-block\">
<img class=\"img-circle img-bordered-sm\" src=\"../dist/img/logo/logo_".$chain."\" alt=\"\">
<span class=\"username\">
<a href=\"".$website."\" target=\"_blank\">".$folder."</a>
</span>
<span class=\"description\"><i class=\"fa fa-map-pin\"></i> ".$location." - Posted on ". $date . "</span>
</div>
<!-- /.user-block -->
<p>".$desc."</p>
<div class=\"lightBoxGallery\">
<a href=\"".$dir . $folder . "/".$file."\" title=\"".$file."\" data-gallery=\"\"><img src=\"".$dir . $folder . "/".$file."\" style=\"height:100px; width:100px;\"></a>
</div>
";
}
}
}
}
}
closedir($handle);
}
?>
编辑: 以下@JazZ的建议,我已经调整了代码,现在工作得很好,但是,假设不希望显示调整大小的图片本身是一个,而是存储在一个子文件夹,而缩略图(例如, ./location1/thumbs/),我会怎么做呢?
<?php
$dir = './inspections/';
if ($handle = opendir($dir)) {
$blacklist = array('.', '..', 'default', 'default.php', 'desc.txt');
while (false !== ($folder = readdir($handle))) {
if (!in_array($folder, $blacklist)) {
echo "
<!-- Post -->
<div class=\"post\">
<div class=\"user-block\">
<img class=\"img-circle img-bordered-sm\" src=\"../dist/img/logo/gallery_icon_".$chain.".jpg\" alt=\"\">
<span class=\"username\">
<a href=\"".$website."\" target=\"_blank\">".$hotel_name."</a>".$status."
</span>
<span class=\"description\"><i class=\"fa fa-map-pin\"></i> ".$location." - Posted on ".date('jS F, Y - H:m', strtotime($posted_on))."</span>
</div>
<!-- /.user-block -->
<p>".$desc."</p>
<div class=\"lightBoxGallery\">
";
foreach (glob($dir . $folder . "/*.jpg") as $filename) {
echo "
<a href=\"".$filename."\" title=\"\" data-gallery=\"\"><img src=\"".$filename."\" style=\"height:100px; width:100px;\"></a>";
}
echo "</div>
</div>
<!-- /. POST -->
";
}
}
closedir($handle);
}
?>
完美无缺地工作,谢谢。我建议的唯一的事情就是调整脚本以接受各种图像,而不仅限于* .png(尽管这只是我需要和要求的,只是一个建议)。非常感谢! – Armitage2k
假设每个位置文件夹中都有一个'/ thumbs /'文件夹,那么如何将该文件夹包含到$ filename数组中?我想为每个找到的$ filename显示$ thumb,但这意味着该数组需要“foreach循环”的多个变量,这可以完成吗? – Armitage2k
您能否以新的要求更新您的问题。今天下午会看。 – JazZ