php file_exists无效解决办法
2012-08-16 17:44
134 查看
方法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特殊设置所保护的文件在引用(include和require)时不必加上$_server['document_root']路径,因为,根据php说明文档,它们是允许引用的。
方法2:本人的情况是因为文件在windows和linux之间来回的移动。造成linux下文件和目录的访问权限被改变,导致出文件除拥有者外其他均无访问权限。使用chmod -r 755 xxx/* 解决了问题。
由于服务器端的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特殊设置所保护的文件在引用(include和require)时不必加上$_server['document_root']路径,因为,根据php说明文档,它们是允许引用的。
方法2:本人的情况是因为文件在windows和linux之间来回的移动。造成linux下文件和目录的访问权限被改变,导致出文件除拥有者外其他均无访问权限。使用chmod -r 755 xxx/* 解决了问题。
相关文章推荐
- 解析php file_exists无效的解决办法
- php file_exists无效解决办法
- 解析php file_exists无效的解决办法
- 解析php file_exists无效的解决办法
- php file_get_contents返回空 无效解决办法
- php file_get_contents返回空 无效解决办法
- IE6 Ie7 中 z-index 无效的解决办法 就是某层无法造常规覆盖某层
- 3389远程桌面的剪切板无效最佳解决办法
- 动态设置ListView的分割线无效的解决办法
- 关于jquery $符号在IE下无效的解决办法
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 解决办法
- Spring 3.1 注释方式实现拦截器无效问题解决办法
- android的scrollview视图内部的子视图中android:layout_height="fill_parent"无效的解决办法
- Archlinux支付宝控件的安装无效的解决办法
- Android TabActivity 返回键监听无效的解决办法
- H5新特性 input type=date 在手机上默认提示显示无效解决办法
- jQuery 1.9/2.0/2.1及其以上 on 无效的解决办法
- xadmin下设置use_bootswatch = True无效的解决办法
- eWebEditor IE7 IE8 所有按钮无效 解决办法
- flex air mx:HTML target=_blank 无效解决办法!