php file_exists无效什么原因?二种解决办法

发布时间:2020-03-18编辑:脚本学堂
本文介绍了php file_exists函数无效的原因与解决方法,当需要检测文件路径时,可以考虑file_exists函数进行检测,需要的朋友参考下。

php file_exists无效怎么办?解决方法

方法1,若php教程的safe mode相关的设置过于苛刻,则会出现:尽管文件真实存在也被误报,认为文件不存在。

由于服务器端的php.ini无法操纵,当用ini_set()也关闭不了safe mode模式,只有退而求其次,找一个更可靠、安全的检测方法来检测文件是否存在。

可以借助 $_server['document_root'] 来加以实现。
$_server['document_root'] 返回的是网站的根目录,该目录的最后一个子目录不包含目录标志符号“/”,如:
d:/www/htdocs

有了根目录,再加上需要检测的文件的路径,将得到一个绝对的路径,php即可使用file_exists()函数进行检测。

以上代码只需要更改第一行为(注意,在config.php之前加上了符号“/”):
$file=$_server['document_root']."/config.php";
如此,代码的执行就很可信,不会出现预期以外的结果。

以上方法同样适用于目录(is_dir())或文件(is_file())的相关检测函数,能够检测出被安全保护的目录或文件是否存在。

这类被php特殊设置所保护的文件在引用(includerequire)时不必加上$_server['document_root']路径,因为,根据php说明文档,它们是允许引用的。

方法2:
因为文件在windows和linux之间来回的移动。
造成linux下文件和目录的访问权限被改变,导致出文件除拥有者外其他均无访问权限。
使用chmod -r 755 xxx/* 解决了问题。