我有一個名爲「檢查」的文件夾,其中有一些名爲「位置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