在url(PHP)中使用变量字符串时没有这样的目录

在url(PHP)中使用变量字符串时没有这样的目录,php,Php,嗯,这个标题可能没有多大帮助。我不知道如何描述这个错误。我肯定这是我的愚蠢行为造成的。但就我的一生而言,我无法理解 我想做的是:在我的目录“img/gallery”中有一个文件夹列表 每个文件夹中都有图像 还有一个名为“img/thumbs”的文件夹,其结构完全相同,但带有缩略图 我正在编写一个脚本,它可以做两件事:显示“img/gallery”中文件夹的名称,并显示一个缩略图列表,其中包含指向该文件夹中图像的链接 这两个组件单独运行时,工作正常。总而言之,我在 if($handle=opend

嗯,这个标题可能没有多大帮助。我不知道如何描述这个错误。我肯定这是我的愚蠢行为造成的。但就我的一生而言,我无法理解

我想做的是:在我的目录“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))){
如果(!in_数组($file,$blacklist)){
回显“$file\n”;
}
}
closedir($handle);
}
echo“\n”;
closedir($handle);
}
`


建议会非常有用。谢谢

您是否尝试用引号表示变量?我总是引用我的变量,只是好的实践

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);
}
if($handle=opendir('img/gallery/')){
$blacklist=array('.','..,'somedir','somefile.php');
while(false!=($file=readdir($handle))){
如果(!in_数组($file,$blacklist)){
回显“$file\n”;
}
}
closedir($handle);
}
echo“\n”;
closedir($handle);
}

opendir应该返回true或false,但它可能无法很好地处理if语句,请尝试以下操作:

$handle = opendir('img/gallery/'.$file.'/');
if ($handle) {
也可以使用var_转储$file值以确保它是正确的


如果要迭代每个文件夹中的每个文件,您肯定需要将第二个while循环嵌套在第一个while循环中…?

请尝试以下方法:
if($handle=opendir(“img/gallery/$file/”)
一个常见的问题是,普通引号“”不会显示变量,因此它只会搜索一个名为$file的目录,显然找不到该目录。PHP有一个很酷的目录迭代器,您可能想使用:
-1
查找Google可以修复的基本PHP错误。弗雷德里克喊道,您伤了我的心。还有一个问题。这可能是一个简单的解决办法。当脚本运行时,输出目录将$file排除在外,只给我子文件夹。这解决了错误,但现在还有另一个问题:在我运行代码后,变量$file不起作用。以下是输出内容:burt residence@JaredSteffen您当然需要将第二个while循环嵌套在第一个while循环中,这样您就可以获得每个文件夹($file)中的每个图像($entry)?谢谢!这帮了我无数次!
$handle = opendir('img/gallery/'.$file.'/');
if ($handle) {