要包含PHP文件时应使用哪个?
if(file_exists($file) require "$file";
或
if(is_readable($file) require "$file";
?
[
file_exists()
或is_readable()
当您要包含一个PHP文件时,应该使用哪一个?
这取决于您是否想知道only文件或目录是否存在,或者两者是否合适,以及是否需要检查可读性。
有时您只关心文件和/或目录是否存在,并且不需要读取,有时还需要读取。
检查文件或目录是否存在。
如果您明确只想知道file是否存在,则它将返回误报,如果在目录中则将返回true。
告诉<>或目录是否存在并且可读。 如果您明确只想知道 file
您没有提到的其他选项,但可能需要:
告诉它是否存在并且是常规的
file
(不是目录)。 is_dir()告诉它是否存在并且是
目录
(不是文件)。 解决方案和答案is_file()
is_dir()
file_exists()
is_file()
和is_readable()
is_dir()
和is_readable()
is_readable()
file_exists()
和is_readable()
,因为is_readable()
还会检查file_exists()
是否。将is_readable()
与is_file()
或is_dir()
配对仅用于检查是否仅在文件上读取specifically
仅依靠require
来管理系统是否挂起并不是真的有用。想象所需的文件不可用,因此PHP不能按需停止,但是该文件只是文章图像或用户头像-您真的不希望仅仅因为以下原因而提供站点导航,徽标,链接,各种页面文本和内容?丢失的商品图片?
VITAL:如果文件是允许提供整个页面内容的数据库连接类,则文件不存在可能需要系统停止。当然,那您应该有某种退出策略,例如为404页提供服务,或者出现错误消息-“对不起,我们将进行调查”等。
非重要:有时文件不存在或至少对应用程序的其余部分无害是有效的。例如,如果图像文件不存在,则可以提供消息或默认图像,例如,如果找不到用户头像,则该用户头像将仅具有默认头像。
is_可读()
require
文件,则错误检查毫无意义。使用require
而不是include
的目的是在文件不存在的情况下破坏脚本的执行。if (is_file($file) && is_readable($file))