Home >Backend Development >PHP Tutorial >PHP file_exists()有什么用?

PHP file_exists()有什么用?

PHPz
PHPzOriginal
2016-06-13 11:27:411831browse

PHP “file_exists()”函数的作用是检查文件或目录是否存在,该函数的语法是“file_exists(path)”,其参数“path”规定要检查的路径。

PHP file_exists()有什么用?

在PHP中,file_exists()函数用于检查文件或目录是否存在;如果指定的文件或目录存在则返回true,否则返回false。

语法

file_exists(path)

参数:

  • path:必需。规定要检查的路径。

示例1:

<?php
echo file_exists("test.txt");
?>

上面的代码将输出:

1

拓展:

file_exists()方法判断文件是否存在,但是明明文件是存在的,去始终无法找到文件显示不存在。第一反应是php版本是不是升级了,发现没有。——后来把整个目录设置成777就没事了(chmod 777 -R 目录)。

我想是不是file_exists()方法问题。于是进行了调试和试验。

调试过程

调试代码:

1 (1).png

目录:

2 (1).png

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

3 (1).png

运行结果:

4 (1).png

目录的执行权限影响file_exists()

1、给test一个最大的权限——755

5 (1).png

6 (1).png

7 (1).png

既然成功了,说明file_exists()函数是受目录权限的限制的。

那什么样的目录权限影响file_exists()呢?

我做了几个实验:

1、文件的任何上级目录,只有写权限时报文件不存在;

2、文件的任何上级目录,只有读权限时也报文件不存在;

3、而当所有上级目录都有执行权限的时候,报文件是存在的,一切都正常。

结果,说明file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限。

修改文件路径为相对路径,得出一样的结果。

8 (1).png

附加信息

如果目录没有执行权限,php-fpm应用进程就不能到这个目录下面去进行文件搜索,当然就认为文件不存在(实际是认为没有可执行的目录是不存在的)。

手册内容,大家可以一起斟酌一下,主要是执行权限。在这里就不详谈读写权限了(一般都很好理解)

9.png

明显手册中,对目录的执行权限有明确的指示。对目录的执行权限,就是拥有被搜索的权利。

更多相关知识,请访问 PHP中文网!!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn