我使用PHP创建了一个简单的图库,其中文件夹中的图像(让我们称之为主文件夹)显示在网站的特定部分上,这非常有效。
但我决定更进一步,根据主文件夹中的文件夹创建不同的类别,PHP脚本找到所有文件夹,并使用代码创建以文件夹命名的div;
<?php
foreach(glob('images/*', GLOB_ONLYDIR) as $directories) {
echo ("<div id='$directories'>");
echo ("<h1>$directories</h1>");
foreach(glob('$directories/*') as $image) {
echo ("<img src='$image' width='300'>");
}
echo ("</div>");
}
?>
但是它里面的foreach并没有显示任何东西,虽然它在第一个foreach之外工作正常。我正在寻找的结果是PHP搜索文件夹后的文件夹图像,当它找到一个时,创建一个div,然后在里面写下文件夹名称,然后显示该特定文件夹内的所有图像 - 然后继续下一个并重复,有没有人知道出了什么问题?
我在答案之后通过互联网和这个网站进行了搜索,但所有这些都更加先进,而且没有一个使用glob。所以我现在在这里问。
提前致谢!
答案 0 :(得分:2)
foreach
循环没问题,但是当你想要interpolate a variable into a string时需要使用双引号。我想你错过了那个。内部foreach
应如下所示:
foreach(glob("$directories/*") as $image) {
如果你问我,我会将变量命名为$directory
(单数)。这似乎更合适。
答案 1 :(得分:1)
尝试使用,在foreach循环中替换"
而不是'
foreach(glob("$directories/*") as $image) {
而不是
foreach(glob('$directories/*') as $image) {