readdir while循环未执行

时间:2018-07-26 12:40:50

标签: php

我目前有一个while循环,应该读取给定目录,然后使用这些文件填充select元素。目前,select元素保持为空,但是如果我删除while循环,它将显示第一个选项。这段代码在我的本地计算机上工作正常,并且此错误仅在远程服务器上产生。谁能看到我可能会丢失的东西吗?

代码:

$path="files/Sales 101/module 1/";
$current_dir = $path;
$dir = opendir($current_dir);
while($file=readdir($dir)){
    $filepath = $current_dir.$file;    
    if($file == "." or $file == "..")
    {
        echo " ";
    }
    else
    {    
        echo "<option value='$filepath'>$file</option>";
    }             
}

2 个答案:

答案 0 :(得分:1)

根据php手册(http://php.net/manual/en/function.readdir.php),您应使用

while(false !== $dir && ($file=readdir($dir))){...

因为如果实际上opendir返回false,那么您将发生无限循环。 最终检查$ dir的类型可能会确认这一点。

答案 1 :(得分:-1)

我可以在本地和实时服务器操作系统上使用吗?是Linux还是Windows?

如果是Linux:

必须为'/'斜杠错误。您应为目录路径提供'\'。 EG:$path="files\Sales 101\module 1\";

如果是Windows:

尝试替换路径空格。

EG:$path="files/Sales_101/module_1/";

相关问题