坑爹的file_exists

错误:这里报出文件不存在。
思考过程:
1、我原以为是程序里没有这个文件呢,结果发现,文件是有的,那是怎么回事?
2、后来我再猜是不是php内核有问题,我把php的相关内核文件看了一遍,也没发现问题。结果我就把整个过程跟项目经理说去了。——事情也没解决,就这样先不了了之。升级的事情先耽误着。
今天又发现这个问题,我第一反应是php版本是不是升级了,发现没有。——后来把整个目录设置成777就没事了(chmod 777
-R 目录)。我想是不是file_exists()方法问题。
所以,我就进行了相关的调试和实验。


目录:

观察各个权限:test对www是没有任何权限的,而执行文件index.php有读写执行权限,包含文件test.txt有读写权限。


运行结果:





既然成功了,说明file_exists()函数是受目录权限的限制的。
那什么样的目录权限影响file_exists()呢?
我做了几个实验:
1、文件的任何上级目录,只有写权限时报文件不存在;
2、文件的任何上级目录,只有读权限时也报文件不存在;
3、而当所有上级目录都有执行权限的时候,报文件是存在的,一切都正常。
结果,说明file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限。
修改文件路径为相对路径,得出一样的结果。




坑爹的file_exists的更多相关文章
- 【转】PHP 杂谈 坑爹的file_exists
转自:http://www.cnblogs.com/baochuan/archive/2012/05/06/2445822.html 介绍 我发现了一个问题,今天与大家分享.我把整个过程描述一下. ...
- PHP中file_exists()函数不能检测包含中文的文件名的解决办法
版权声明:本文为博主原创文章,未经博主允许不得转载. PHP中一般使用file_exists()判断某个文件或者文件夹是否存在,如果文件或文件夹存在则返回true,不存在则返回fal ...
- Elasticsearch 的坑爹事——记录一次mapping field修改过程
Elasticsearch 的坑爹事 本文记录一次Elasticsearch mapping field修改过程 团队使用Elasticsearch做日志的分类检索分析服务,使用了类似如下的_mapp ...
- [iOS]坑爹的ALAsset(Assets Library Framework)
Assets Library Framework 可以用来做iOS上的多选器,选照片视频啥的啦就不介绍了. 目前的项目有点类似dropbox,可以选择设备内的照片然后帮你上传文件,使用了Assets ...
- .net core 一次坑爹的类库打包过程
众所周知,.net core 跨平台类库引用一定要通过nuget获得.(如有问题,欢迎指出) 打包 将普通.net project转换成.net core 的类库有两种方式: 1.新建.net cor ...
- 首师大附中互测题:50136142WXY的坑爹百度地图【B006】(可以喝的超大桶水)
[B006]50136142WXY的坑爹百度地图[难度B]——————————————————————————————————————————————————————————————————————— ...
- 坑爹坑娘坑祖宗的87端口(记一次tomcat故障排查)
原贴如下 坑爹坑娘坑祖宗的87端口(记一次tomcat故障排查) 虽然我用的是PHPstudy部署的dedecms,还是一样栽倒这个坑里了. 总结经验:本地测试使用8000~9000的端口比较安全.
- 坑爹的 SONY AS100V GPS
事情是这样的,为了记录自己的生活,也是出于对视频编辑的兴趣,买了一台 SONY 的 AS100V 运动摄像机. 公司到货,回家路上拍了一段,回家兴冲冲的连上电脑,想看看 GPS 数据,发现是 SONY ...
- app里使用163邮箱发送邮件,被163认为是垃圾邮件的坑爹经历!_ !
最近有个项目,要发邮件给用户设定的邮箱报警,然后就用了163邮箱,代码是网上借来的^^,如下: package com.smartdoorbell.util; import android.os.As ...
随机推荐
- Oracle学习笔记_09_字符串相关函数
二.参考资料 0.Oracle中的字符串类型及相关函数详解 1.ORACLE 字符串操作 2.oracle函数大全-字符串处理函数
- qt中建立图片资源文件
qt中如果你要添加图片资源文件我们需要执行以下步骤: (1)先找好一张图片,这里就不多说了,网上资源很多. (2)把我们找好的文件统一放到一个文件夹,然后拉到工程文件所在的文件夹下 (3)在qt中新建 ...
- File System 定额(配额查询)
不多说,在弄一个基于FileSytem/IndexedDB的小应用,目前处于基础开发阶段, 我们在使用FileSystem的时候无疑是需要知道浏览器的定额(配额的),怎么去查询,当然可以查询 Quot ...
- Sequelize 基本操作
Sequelize 是 Node 的一个 ORM(Object-Relational Mapping) 框架,用来方便数据库操作. 配置 sequelize 以 mysql 为例 首先我们要引入npm ...
- Jquery ajax异步传值的两个实用的方法,你看后肯定会用第二个
故名思议,你是个asp.net 或者是搞PHP的或者 是javaweb的 ,但是为了提高界面的效率,你必须会实用jquery的ajax,当然,在ajax异步传值的时候很头疼的一件事情就是,拼接字符串 ...
- 盒模型 bug 与触发 bfc
一.margin合并 css经典bug 两个块级元素 分别设置 margin-bottom 和 margin-top 并不能达到预期效果 <style> .up{ width: 200 ...
- Zabbix实战-简易教程(2)--整体架构图
- Flask笔记
# -*- coding: utf-8 -*- from flask import Flask,render_template,request,redirect,session,url_for imp ...
- 推荐几个不错的 java 教程和 HTML 教程
Java入门第一季 Java入门第二季 2小时学会Spring Boot Java模板引擎之Freemarker HTML+CSS基础课程 H5+JS+CSS3实现七夕言情 jQuery基础系列
- springboot项目启动时提示Address already in use: bind
PS:web项目在启动的时候,一般会报Address already in use: bind,常规的处理思路为:删除任务管理器中的javaw.exe进程即可:当删除仍然解决不了时,一般处理思路如下, ...