PHP使用scandir扫描含空格路径时提示目录无效问题咨询
问题原因与解决方法
你犯了一个基础错误:scandir() 函数的参数必须是目录路径,但你传入的是具体的文件路径 /folder/File in my computer.pdf,这直接导致了“目录名称无效”的错误——跟文件名里的空格完全无关,所以你之前用str_replace转义空格的操作根本没触碰到问题核心。
正确做法
- 如果你要扫描文件所在的目录,应该传入目录路径,比如
/folder/:
$dir = "/folder/"; $files = scandir($dir); // 之后可以在返回的文件列表里查找目标文件 if (in_array("File in my computer.pdf", $files)) { echo "文件存在"; }
- 如果只是要检查这个文件是否存在,不需要用
scandir,直接用file_exists()或者is_file()更高效:
$filename = "/folder/File in my computer.pdf"; if (file_exists($filename)) { echo "文件存在"; } // 或者确认是文件而非目录 if (is_file($filename)) { echo "这是一个有效文件"; }
内容的提问来源于stack exchange,提问作者Damiano Fontana
相关产品推荐
相关产品推荐

