php - readdir while循环未执行
问题描述
我目前有一个 while 循环,它应该读取给定的目录,然后用这些文件填充一个选择元素。目前,选择元素仍然为空,但如果我删除 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>";
}
}
解决方案
根据php手册(http://php.net/manual/en/function.readdir.php)你应该使用
while(false !== $dir && ($file=readdir($dir))){...
因为如果它实际上 opendir 返回 false 你会有一个无限循环。最终检查 $dir 的类型可能会证实这一点。
推荐阅读
- qt - QtMediaPlayer 持续时间始终为 0
- angular - Core.js 12799:无法绑定到“ngForOf”,因为它不是“tr”的已知属性
- sql - 使用 SQL 函数将 Json 手动写入 SQL 列
- python - 有没有办法从excel表中不断更新数据并将该数据用于图表
- sql - 在 DB2 SQL 中获取键的记录但显示单独键的值
- sql - 如何对列的值的每一行求和?
- python - Raspberry Pi 运动传感器随机运动传感
- vba - VBA / Outlook / 加密电子邮件 - 保存到磁盘、阅读时间和发件人问题
- c++ - 从派生类调用非模板类中的模板构造函数
- google-kubernetes-engine - gke v1.16.9-gke.6 升级后 prometheus-to-sd:v0.10.0-gke.0 失败