我在一个特定包中的每个文件中都有一个文件header.php
require()'d
。其中一个用途是检查文件db_conn.php
是否存在,如果没有重定向到特定页面 - 除了,当它require()'d
进入的文件是{{1}时}。
但是,我刚刚意识到,常量/admin/settings/index.php
与__FILE__
相关,而不是文件header.php
使其无法使用。
我想知道是否可以获取require()'d
为header.php
的父文件的路径和文件名?
仅供参考,这是我的代码:
require()'d
任何帮助将不胜感激!谢谢!
答案 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__;
在每个文件的顶部...如果需要,稍后进行分析。