我在Linux服务器上的file_exists()
PHP函数有一个奇怪的问题。PHP file_exists()在某些文件上返回false
使用file_exists在编辑之前检查图像是否在服务器上,它有时会失败,原因不明。文件路径是绝对的,我已经通过ssh检查了它们,它们在指定的路径上是100%。
失败file_exists()的图像仍将显示在浏览器中。代码没有什么区别,一个基本的var_dump(file_exists('/home/user/path/image.jpg'));
将返回false。
文件权限/所有权在所有图像和父目录上完全相同。安全模式关闭。没有PHP错误。我现在难倒了,不知道该找什么。
下面是图像如何在服务器上:
/home/user/public_html/images/location/1.jpg -- will work
/home/user/public_html/images/location2/1.jpg -- won't work
/home/user/public_html/images/location2/2.jpg -- will work
我有服务器的root访问权限,如果任何人有任何想法,我会很乐意尝试出来。
在此先感谢您的建议,请告诉我您是否需要额外信息。
编辑: 要回答以下评论中的问题。
- 是的图像在那里,它绝对不是缓存。
- 安全模式关闭(我已经在我的文章中提到过)。
- 路径不是符号链接,而是直接链接到服务器上的文件位置。
- 凤凰,它是一致的。工作文件将始终工作,反之亦然。名字是1.jpg,1.thumb.jpg等等,所以它对陌生人物或空间来说不是问题。
[[email protected] ~]# ls -l /home/user/public_html/images/Hawkhurst/
total 92
-rwxr-xr-x 1 user user 24501 Aug 11 2009 1.jpg
-rwxr-xr-x 1 user user 1672 Aug 11 2009 1.thumb.jpg
-rwxr-xr-x 1 user user 14983 Aug 11 2009 2.jpg
-rwxr-xr-x 1 user user 1370 Aug 11 2009 2.thumb.jpg
-rwxr-xr-x 1 user user 17238 Aug 11 2009 3.jpg
-rwxr-xr-x 1 user user 1453 Aug 11 2009 3.thumb.jpg
-rwxr-xr-x 1 user user 14168 Aug 11 2009 4.jpg
-rwxr-xr-x 1 user user 1464 Aug 11 2009 4.thumb.jpg
[[email protected] ~]#
我试图与权限777和755这有什么区别。例如在这个文件夹中,1和2可能工作,而3 & 4不要...
我跑了一个快速测试,看看apache/php的运行和他们没有运行,但没有解释为什么有些图像可以工作,有些则没有完全相同的权限。
编辑2:问题解决了。不能相信它有多愚蠢,从数据库中调用的一些文件名在最后有空格......制作原始脚本的人在保存之前没有进行任何清理。
是文件居然有?您可能会因缓存而看到图片。 – 2011-01-08 16:17:02
您是否启用了safe_mode? – Mchl 2011-01-08 16:20:38