嗯,标题可能不是很有帮助。我不确定如何描述这个错误。我确信这是由于我的愚蠢行为造成的。但是对于我的生活,我无法理解。
以下是我要做的事情:我的目录“img / gallery”中有一个文件夹列表
在每个文件夹中都有图像
还有一个名为“img / thumbs”的文件夹,其结构完全相同但带有缩略图
我正在编写一个执行两项操作的脚本:它显示“img / gallery”中文件夹的名称,并显示一个缩略图列表,其中包含指向该文件夹中图像的链接。
这两个组件在单独运行时工作正常。放在一起,我在
收到错误 if ($handle = opendir('img/gallery/$file/'))
说$ file不是有效目录。
以下是代码:
`
if ($handle = opendir('img/gallery/')) {
$blacklist = array('.', '..', 'somedir', 'somefile.php');
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $blacklist)) {
echo "<h2>$file</h2>\n";
}
}
closedir($handle);
}
echo "<P class='gallery'>\n";
if ($handle = opendir('img/gallery/$file/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "<a class='fancybox' href='img/gallery/$file/$entry' data-fancybox-group='gallery'>\n<img src='img/thumbs/$file/$entry' alt='' /></a>\n";
}
}
echo "</p>\n";
closedir($handle);
}
`
建议会非常有用。谢谢!
答案 0 :(得分:1)
opendir应该返回true或false但是它可能与if语句没有很好地协作试试这个:
$handle = opendir('img/gallery/'.$file.'/');
if ($handle) {
var_dump out $ file值也可以确保它是正确的。
当你要迭代每个文件夹中的每个文件时,你肯定需要在第一个中嵌入第二个while循环...?
答案 1 :(得分:0)
您是否尝试过变量报价?我总是引用我的变量,只是好的做法。
if ($handle = opendir('img/gallery/')) {
$blacklist = array('.', '..', 'somedir', 'somefile.php');
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $blacklist)) {
echo "<h2>$file</h2>\n";
}
}
closedir($handle);
}
echo "<P class='gallery'>\n";
if ($handle = opendir('img/gallery/' . $file . '/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "<a class='fancybox' href='img/gallery/" . $file . "/" . $entry . "' data-fancybox-group='gallery'>\n<img src='img/thumbs/" . $file . "/" . $entry . "' alt='' /></a>\n";
}
}
echo "</p>\n";
closedir($handle);
}