使用包含的文件获取文件的路径/名称?

时间:2011-11-05 17:59:12

标签: php include constants require

我在一个特定包中的每个文件中都有一个文件header.php require()'d。其中一个用途是检查文件db_conn.php是否存在,如果没有重定向到特定页面 - 除了,当它require()'d进入的文件是{{1}时}。

但是,我刚刚意识到,常量/admin/settings/index.php__FILE__相关,而不是文件header.php使其无法使用。

我想知道是否可以获取require()'dheader.php的父文件的路径和文件名?

仅供参考,这是我的代码:

require()'d

任何帮助将不胜感激!谢谢!

3 个答案:

答案 0 :(得分:1)

好吧,对于复杂的嵌套包含我知道的唯一方法是使用debug_backtrace()

但是,对于这样的普通情况,SCRIPT_FILENAME的PHP_SELF就足够了,我相信

答案 1 :(得分:1)

好吧,你可以摆弄debug_backtrace来找出答案。但是,更好的解决方案是在/admin/settings/index.php中设置一个变量,指示它是否应该查找db_conn.php。这是可能的,因为范围被继承到包含的文件中:

/admin/settings/index.php:

$check_for_dbfile = false;

db_conn.php:

if(!isset($check_for_dbfile)) {
   // do your check..
}

答案 2 :(得分:0)

尝试使用

$arr_scripts[] = __FILE__; 

在每个文件的顶部...如果需要,稍后进行分析。