PHP:为什么我的`set_include_path()`在指向一个目录时不起作用?

时间:2013-02-25 17:01:00

标签: php require-once set-include-path

有一个小库,我正在尝试插入我的项目。这个lib有一些包含并且需要跨类,所以我试图为所有工作设置一个包含路径。

当试图在兄弟分支上设置包含路径时,我遇到了打嗝。

对于参考点,require('/../my/test.php')工作正常。

也是如此

set_include_path('/../');
require_once('my/test.php');

但是一旦我尝试

set_include_path('/../my/');
require_once('test.php');

我明白了:

  

警告:require_once(one.php):无法打开流:没有这样的文件或目录......

我错过了什么?

1 个答案:

答案 0 :(得分:5)

使用/启动路径意味着查看根目录,因此/../在技术上是一个目录上面根目录。

要设置当前位置的父目录的包含路径,只需../。为了使代码更具可移植性,我建议将其与dirname(__FILE__)组合以获取当前目录的绝对路径。

IE:

set_include_path(dirname(__FILE__) . '/../my/');

请注意,该示例中需要前面的/,因为dirname()不会返回斜杠