Php 获取包含文件的文件的路径/名称?
我有一个文件Php 获取包含文件的文件的路径/名称?,php,include,constants,require,Php,Include,Constants,Require,我有一个文件header.php,它是require()。它的一个用途是检查文件db_conn.php是否存在,如果不存在,则重定向到一个特定的页面-,除非require()'d进入的文件是/admin/settings/index.php 然而,我刚刚意识到,常量\uuu文件\uuu属于header.php,而不是它的require()'d文件,使其无法使用 我想知道是否有可能获取父文件的路径和文件名,其中header.php是require()'d 仅供参考,以下是我的代码: if(file
header.php
,它是require()。它的一个用途是检查文件db_conn.php
是否存在,如果不存在,则重定向到一个特定的页面-,除非require()'d
进入的文件是/admin/settings/index.php
然而,我刚刚意识到,常量\uuu文件\uuu
属于header.php
,而不是它的require()'d
文件,使其无法使用
我想知道是否有可能获取父文件的路径和文件名,其中header.php
是require()'d
仅供参考,以下是我的代码:
if(file_exists($rp . "/_static/inc/db_conn.php")) {
require $rp . "/_static/inc/db_conn.php";
} elseif(__FILE__ == $rp . "/admin/settings/index.php" && !file_exists($rp . "/_static/inc/db_conn.php")) {
$init = true;
} else {
header("Location:" . $server_name['plat'] . "/admin/settings/?error=1");
}
任何帮助都将不胜感激!谢谢 对于复杂的嵌套包含,我知道的唯一方法是使用debug_backtrace()
然而,对于这种普通情况,脚本文件名的PHP SELF就足够了,我相信,您可以通过调试回溯来找到答案。但是,更好的解决方案是在/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..
}
尝试使用
$arr_scripts[] = __FILE__;
在每个文件的顶部。。。如果需要,请稍后进行分析 道具,这正是我需要的!对于其他人,我使用了realpath($\u SERVER['SCRIPT\u FILENAME'])
,它可以完美地在线工作。