即使file_exists()声明文件存在,require()也会失败

时间:2012-02-25 22:18:10

标签: php include

这是我的代码:

if (file_exists('config.php')) {
    require('config.php'); // This is line 38
}

以某种方式产生错误:

  

警告:require(config.php)[function.require]:无法打开流:第38行的/path/name/file.php中没有此类文件或目录

这究竟是怎么回事?

更新:以下 工作:

if (file_exists(getcwd(). '/config.php')) {
     require(getcwd(). '/config.php');
}

3 个答案:

答案 0 :(得分:6)

尝试绝对路径。使用dirname(__FILE__)

require(dirname(__FILE__) . '/config.php');

答案 1 :(得分:5)

PHP includerequire以相同的方式运行并使用包含路径(include)。因此,将使用此路径查找文件,如果未正确设置,则不会查看当前目录。

使用get include path找出此值。

答案 2 :(得分:4)

尝试忽略包含路径:

if (file_exists('config.php')) {
    require('./config.php'); // This is line 38
}

如果它有效,你就会失踪。目录进入包含路径,您必须选择包含它或使用相对路径文件名

您可以使用php配置指令更改include_path(如果您可以更改php配置文件)或使用 get_include_path() set_include_path()更改文件/项目基础

ex:set_include_path('.'. PATH_SEPARATOR . get_include_path());在你的第一行php(或公共配置文件)中;

来源: