PHP 包含路径:我做错了什么?

PHP include path: what am I doing wrong?

好的,我很确定这是有人会回答的最简单的问题。

我尝试获取并回显同一级别的文件内容:

die(file_get_contents('test.txt')); //"hello"

工作正常。我尝试通过设置错误的包含路径来使该调用无效:

set_include_path('non-existant-dir');
die(file_get_contents('test.txt')); //still "hello"

...但它仍然找到该文件。 set_include_path meanfile_get_contents 的调用不应该在名为 non-existant-dir 的目录中查找 test.txt 并因此失败吗?

函数 "file_get_contents" 可以接受多个参数 - 其中一个是标志的组合,其中一个标志是 "FILE_USE_INCLUDE_PATH" - 默认情况下我认为它不会使用包含路径所以将包含路径设置为什么都没有关系。 尝试:

set_include_path('non-existant-dir');
die( file_get_contents('test.txt', FILE_USE_INCLUDE_PATH) );

在您的 php.ini 配置中寻找 include_path 覆盖 set_include_path 函数并将其注释掉然后重新启动 apache。