php - file_exists() 或 is_readable()

标签 php include require file-exists

当您想要包含 PHP 文件时应该使用哪个?

if(file_exists($file) require "$file";

if(is_readable($file) require "$file";

?

最佳答案

file_exists() or is_readable()
Which one should you use when you want to include a PHP file?

这取决于您是否想知道一个文件一个目录是否存在,或者两者是否都可以,以及您是否需要检查是否可读.

有时你只关心文件和/或目录是否存在,不需要读取,有时你也需要读取。

选项

file_exists()

检查文件目录是否存在。

如果您明确只想知道文件 是否存在,这将返回误报,如果它是目录,则返回真。

is_readable()

判断文件目录是否存在且可读。

如果您明确只想知道文件 是否可读,这可能会返回误报,如果它是一个目录则可能返回真。


您没有提到但可能需要的其他选项:

is_file()

判断它是否存在并且是一个普通的文件(不是目录)。

is_dir()

判断它是否存在并且是一个目录(不是文件)。

解决方案&答案

如果你想检查是否存在并且:

  1. 只是一个文件:使用is_file()
  2. 只是一个目录:使用 is_dir()
  3. 是文件还是目录:使用file_exists()

如果你想检查是否存在并且可读:

  1. 并且只是文件:使用 is_file()is_readable()
  2. 并且只是目录:使用 is_dir()is_readable()
  3. 并且是文件或目录:使用is_readable()

您不需要同时使用 file_exists()is_readable() 因为 is_readable() 还会检查 file_exists ().
is_readable()is_file()is_dir() 配对只是为了检查是否可读特别是仅一个文件或特别是 仅在一个目录中。


依赖需求

与大多数 PHP 和“什么是最好的方法/函数/等等”一样 - 这取决于场景。

仅仅依靠 require 来管理系统是否挂起并不是很有用。想象一下所需的文件不可用,因此 PHP 因 require 失败而停止,但该文件只是一篇文章图片或用户头像——你真的不想仅仅因为网站导航、 Logo 、链接、各种页面文本和内容而提供服务吗?缺少文章图片?

重要的:
如果文件是一个数据库连接类,它允许提供整个页面内容,那么文件不存在可能需要系统暂停。
当然,您应该有某种退出策略,例如提供 404 页面或错误消息 - “抱歉,出现错误,我们会调查”等。

非生命体征:
文件不存在有时是有效的,或者至少不会对应用程序的其余部分造成损害。
例如,如果图像文件不存在,您可以提供一条消息或默认图像,例如如果找不到用户头像,则用户头像将只有一个默认头像。

关于php - file_exists() 或 is_readable(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6604726/

相关文章:

ruby - 类在需要时运行

Xcode - 找不到文件但构建成功

c++ - 仅使用一个#include-expression 一次包含多个头文件?

javascript - 使用必需的复选框验证来防止表单提交

php - MySQL 中的 SQL 查询 PHP

php - 如何在 UPDATE 语句中使用 SELECT 中的值?

php - Linux、Apache、PHP - 需要文档上传、编辑和版本控制解决方案

php - Ubuntu每5分钟设置一次cron作业不起作用

ruby-on-rails - 我如何在 Rails 3 的 Controller 中使用 include 来过滤 View 中的结果?

javascript - 使用 require 的导入语句相当于什么?