【发布时间】:2011-10-19 07:09:33
【问题描述】:
我在使用 file_exists() 时遇到了一个非常奇怪的问题。我正在使用此功能检查同一文件夹中是否存在 2 个不同的文件。我已经仔细检查过,它们都确实存在。
echo $relative . $url['path'] . '/' . $path['filename'] . '.jpg';
Result: ../../images/example/001-001.jpg
echo $relative . $url['path'] . '/' . $path['filename'] . '.' . $path['extension'];
Result: ../../images/example/001-001.PNG
现在让我们在这些上使用 file_exists():
var_dump(file_exists($relative . $url['path'] . '/' . $path['filename'] . '.jpg'));
Result: bool(false)
var_dump(file_exists($relative . $url['path'] . '/' . $path['filename'] . '.' . $path['extension']));
Result: bool(true)
我不明白 - 这两个文件确实存在。我正在运行 Windows,因此它与区分大小写的问题无关。安全模式已关闭。
值得一提的是,.png 文件是由用户通过 FTP 上传的,而 .jpg 文件是使用脚本创建的。但据我所知,这应该没什么区别。
有什么建议吗?
谢谢
【问题讨论】:
-
对我来说它最终是因为它需要绝对路径,而不是相对路径。一些 PHP 函数接受相对于当前文件的路径,其中一个是 parse_ini_file。
-
我也以为我有这个问题。检查拼写 10 次后,我意识到文件名以“.jpg.jpg”结尾。没错,我是个失败者