您如何知道在PHP require_once()语句中使用的正确路径

前端之家收集整理的这篇文章主要介绍了您如何知道在PHP require_once()语句中使用的正确路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
许多我有一个config.PHP文件在一个Web应用程序的根目录,我想要包含在几乎每个其他PHP文件.所以大部分都有一条线:
require_once("config.PHP");

或有时

require_once("../config.PHP");

甚至

require_once("../../config.PHP");

但是我第一次没有得到正确的答案.我无法弄清楚在读取其中一个文件时,PHP将被认为是当前的工作目录.显然不是包含require_once()调用文件的目录,因为我可以在同一目录中有两个文件具有不同的config.PHP路径.

如何使一个路径正确刷新页面,但是ajax可以更新页面的一部分需要与require_once()语句中config.PHP不同的路径;

什么是秘密?该路径从哪里评估?

拍摄,我害怕这不会是一个常见的问题 – 这是在apache 2.2.8和PHP 5.2.6上运行在Windows上.

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是这样的:

<?PHP
require_once( 'B/bar.PHP' );
?>

而bar.PHP是:

<?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' );

猜你在找的PHP相关文章