PHP的当前工作目录是被调用脚本文件所在的目录.如果你的文件看起来像这样:
/A
foo.php
tar.php
B/
bar.php
如果您调用foo.php(例如:http://example.com/foo.php),则工作目录为/ A /.如果您调用bar.php(例如:http://example.com/B/bar.php),则工作目录为/ A / B /.
那里有棘手的地方.让我们说foo.php是这样的:
require_once( 'B/bar.php' );
?>
而bar.php是:
require_once( 'tar.php');
?>
如果我们调用foo.php,那么bar.php会成功地调用tar.php,因为tar.php和foo.php在同一个目录下,恰好是工作目录.如果你调用bar.php,它将失败.
一般来说,您将看到所有文件:
require_once( realpath( dirname( __FILE__ ) ).'/../../path/to/file.php' );
或使用配置文件:
// config file
define( "APP_ROOT", realpath( dirname( __FILE__ ) ).'/' );
其余的文件使用:
require_once( APP_ROOT.'../../path/to/file.php' );