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特殊设置所保护的文件在引用(include和require)时不必加上$_server['document_root']路径,因为,根据php说明文档,它们是允许引用的。

 

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

 

时间: 2024-07-31 21:43:27

php file_exists无效解决办法的相关文章

win8下XAMPP中Apache模块无效解决办法

  win8下XAMPP中Apache模块无效解决办法 win8下系统默认占用80端口,导致apache无法打开. 以管理员权限运行c:windowssystem32cmd.exe C:WINDOWSsystem32>net stop http HTTP Service 服务已成功停止. C:WINDOWSsystem32>netstat -ano | findstr 0.0.0.0:80 C:WINDOWSsystem32>sc config http start=disabled [

css ie6、ie7、ie8中overflow:hidden无效解决办法

产生原因: 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效. 解决办法: 我们在IE 6内发现子元素会超出父元素设定的高度,即使父元素设置了overflow:hidden. 解决这个bug很简单,在父元素中使用position:relative;即可解决该bug ie7和ie6 发现在ie6和ie7里面overflow:hidden无效,还是会超出外层div 后来在外层div上面加上position:rel

SQL Server 2008为SQL Server代理服务提供的凭据无效 解决办法

在Windows Server 2008安装SQL Server 2008出现下面的问题: 安装时在"服务器配置"环节出现以下问题: 为sql server代理服务提供的凭据无效 为sql server服务指定的凭据无效 为analysis services服务提供的凭据无效 为reporting services服务提供的凭据无效 为integration services服务提供的凭据无效   解决方法也是非常简单的. 解决方法 SQL Server代理 选 SYSTEM SQL

flash as3中换行符无效解决办法

如今从xml中加载进来并读出的字符串中的换行符不起作用 我很郁闷,多次查查不到什么原因 但试出了用<br/>代替n可以解决此问题 最后才找到了原因.原来不知道为什么xml中的n都变成了\n 所以解决的办法有两个: (1)用<br/>代替n (2)把\n换成n:data.text = data.text.replace(/\n/g,"n");//解决n换行符不起作用的问题..

JavaScript的history.back()在FireFox和Chrome无效解决办法

小编最初写法是history.back()如下 htm <div class="btn1"><a href="#" id="calcelbtn">取消</a></div>   js代码 $('#calcelbtn').click(function(){  history.back();   }) 测试后发现在ie可以使用,在在FireFox和Chrome无效了,后来百度了一下发现要按下面方法定才被在

css float父元素自适应高度无效解决办法

当几个并列div元素使用float属性时,由于父容器没有定义实际高度(height),在IE中显示出现问题,无法显示父容器的背景颜色或背景图片 做了如下设置实验情况:1. 不正常显示的设置 子容器:使用float 父容器:不定义height 2. 在测试中发现,父容器在不定义高度时,取消float属性,背景颜色显示正常 子容器:不使用float 父容器:不定义height 3. 而给父容器定义了高度后,子容器再使用float则一切正常 子容器:使用float 父容器:定义height 原因及解决

IIS6 rewrite没有问题但rewrite规则无效解决办法

 现在经常用到ISAPI_Rewrite,遇到的问题就是在本地测试的时候,一切没有问题,到服务器上,竟然不起作用.郁闷 安装IIS的rewrite组建 由于服务器安装了IIS6,因此要实现伪静态要先下载rewrite组建,这里博主提供了下载. ISAIP筛选器添加rewrite组建 重启服务器. 这时候我要写一个重写掉index.php的rewrite规则,但是老是不生效.  代码如下 复制代码 [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 360

Windows下CURL扩展无效解决办法

1.在php.ini配置文件中启用 php_curll.dll 扩展 2.extension_dir = "E:/env/php-5.6.21/ext",写绝对路径 3.系统环境变量加入PHP环境根目录,path E:\env\php-5.6.21\; 4.查看版本兼容性 按上面办法开始之后我们测试一下curl函数 <?php // create a new curl resource $ch = curl_init(); // set URL and other appropr

Intellij IDEA 使用Spring-boot-devTools无效解决办法

相信大部分使用Intellij的同学都会遇到这个问题,即使项目使用了spring-boot-devtools,修改了类或者html.js等,idea还是不会自动重启,非要手动去make一下或者重启, 就更没有使用热部署一样.出现这种情况,并不是你的配置问题,相信自己,热部署那几个设置很简单,其根本原因是因为Intellij IEDA和Eclipse不同,Eclipse设置了自动编译之 后,修改类它会自动编译,而IDEA在非RUN或DEBUG情况下才会自动编译(前提是你已经设置了Auto-Comp