如何仅包含文件存在

Ema*_*sev 39 php

我需要一个include只包含文件的函数/语句.PHP中有一个吗?

您可能建议使用@include但该方法存在问题 - 如果要包含的文件存在,如果解析器在包含的文件中发现错误,PHP将不会输出警告.

Col*_*lum 85

if(file_exists('file.php'))
    include 'file.php';
Run Code Online (Sandbox Code Playgroud)

那应该做你想要的

  • 最好使用`is_file`来避免目录 - 以获得更安全的代码. (17认同)
  • 或者没有单行条件:`file_exists($ file)AND include $ file;`... (10认同)
  • 如果当前工作目录与包含路径不同,这将不起作用。`file_exists` 相对于当前工作目录,但 `include` 不一定检查当前工作目录。 (2认同)

oez*_*ezi 9

尝试使用 file_exists()

if(file_exists($file)){
  include $file;
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*kkk 5

基于@ Select0r的答案,我最终使用了

if (file_exists(stream_resolve_include_path($file)))
    include($file);
Run Code Online (Sandbox Code Playgroud)

即使您将此代码写入已从另一个目录中的文件中包含的文件中,此解决方案仍然有效.