Php 循环未执行时读取目录

Php 循环未执行时读取目录,php,Php,我目前有一个while循环,它应该读取给定的目录,然后用这些文件填充select元素。当前,select元素仍然为空,但是如果我删除while循环,它将显示第一个选项。此代码在我的本地计算机上运行良好,并且此错误仅在远程服务器上产生。其他人能看看我是否遗漏了什么吗 守则: $path="files/Sales 101/module 1/"; $current_dir = $path; $dir = opendir($current_dir); while($file=readdir($dir))

我目前有一个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>";
    }             
}
$path=“文件/销售101/模块1/”;
$current_dir=$path;
$dir=opendir($current_dir);
而($file=readdir($dir)){
$filepath=$current_dir.$file;
如果($file==“”或$file==”))
{
回声“;
}
其他的
{    
回显“$file”;
}             
}

我可以为您提供本地和实时服务器操作系统吗?是linux还是windows

如果是Linux:

它必须是斜杠错误。您应该为目录的路径指定'\'。 例如:
path=“files\Sales 101\module 1\”

如果是Windows:

尝试替换路径的空格


例如:
$path=“files/Sales_101/module_1/”

while(false !== $dir && ($file=readdir($dir))){...
因为如果它实际上opendir返回false,那么您将有一个有限循环。
最后,检查$dir的类型可能会确认这一点。

检查两台服务器上的文件夹结构是否相同。确实如此。
$path
中指定的目录是否确实包含服务器上的文件?是的,据我所知,这两台服务器上的文件夹结构是相同的。无论是在结构上还是其中包含的文件上,请只阅读手册中的第一个示例,因为您会对手册中的内容感到惊讶。我已经阅读了手册中的示例并相应地调整了代码,但是,这只会导致页面无休止地加载(仅在远程服务器上。所有内容仍在本地工作)PHP在内部对此进行分类。无论OSlive的目标服务器是linux,都应该使用unix
/
。将“/”替换为“\”会得到相同的结果。