此问题已被多次询问,但我找到的答案都没有帮助我。即使文件存在于我的linux上,php file_exists也会返回false
我试图让PHP的file_exists()工作。当它工作时唯一的场景是当php文件与文件位于相同的目录中,并且仅使用文件名(即不包括路径)时使用file_exist()。但这不是随之而来的行为,请参阅下文。
索姆信息:
- 的safe_mode =关闭
- 没有符号链接的目录28
- 在文件名中没有空格
- 在/ var中的所有目录/ www/html等/中芯/上传/ 28 /具有apache:apache 777作为权限。
- 使用PHP 5.3
PHP:
echo getcwd()
clearstatcache();
$file = 'file:///var/www/html/smic/upload/28/ul.txt';
//Also tried like this
//$file = '/var/www/html/smic/upload/28/ul.txt';
if(file_exists($file)){
echo $file." exists";
}
GETCWD()打印在/ var/www/html等/中芯/模块/核心/票务
的PHP脚本的权限并且要检查的文件是apache:apache 777.
有关目录结构的一些细节:
[[email protected] 28]# pwd
/var/www/html/smic/upload/28
[[email protected] 28]# ls -l ul.txt
-rw-r--r--. 1 apache apache 2 Feb 9 10:50 ul.txt
[[email protected] 28]# chmod 777 ul.txt
[[email protected] 28]# ls -l ul.txt
-rwxrwxrwx. 1 apache apache 2 Feb 9 10:50 ul.txt
的行为并没有改变文件的权限后更改。目录/ 28有drwxr-xr-x。对于Apache用户和Apache组
用于测试,我也感动了实际的PHP脚本/ 28,给了它阿帕奇:阿帕奇777 - 瑞。将$文件改为“ul.txt”(即$ file ='ul.txt';)。这工作,找到ul.txt文件。
GETCWD()打印,然后在/ var/www/html等/中芯/上传/ 28
至于另一项测试我试图找到排除在“准考证”目录的路径,另一个文件,该文件是无法识别。
我砰的一声......
任何意见是赞赏。
你使用哪个版本的php?你没有使用'file://'方案试试吗? – VolkerK 2012-02-09 14:00:32
PHP 5.3,已添加到我的文章。我几乎只尝试没有文件:// – Nicsoft 2012-02-09 14:50:56