可选包含在PHP中

时间:2012-04-19 08:54:45

标签: php include optional

我有一个配置文件,其中包含常规配置(在git repo中),以及一个覆盖配置属性的本地配置文件(在repo中忽略)。现在,本地配置文件包含在配置文件的开头:

include_once 'local_config.php';

但我希望include是有条件的:只有在文件local_config.php确实存在时才这样做。我可以毫无问题地执行enter link description here,但首先我需要检查文件是否存在。所以我尝试了get_include_path(),但它返回了一个路径列表,我将不得不解析这个列表并检查每一个。

另一种选择是调用include_once()并禁止警告,但它甚至更加混乱。有没有更简单的方法在PHP中做一个真正的可选包含?

3 个答案:

答案 0 :(得分:3)

使用file_exists()预定义的PHP函数,如下所示:

// Test if the file exists
if(file_exists('local_config.php')){
    // Include the file
    include('local_config.php');
}else{
    // Otherwise include the global config
    include('global_config.php');
}

此处的文档:http://php.net/manual/en/function.file-exists.php

答案 1 :(得分:1)

你可以使用file_exists()

http://php.net/manual/en/function.file-exists.php

答案 2 :(得分:1)

如果您的PHP版本高于5.3.2

,则可以使用stream_resolve_include_path($filename)

http://php.net/stream_resolve_include_path