我有一个文件,它将包含在父文件中,可以说是文件。我需要从子文件中可靠地确定父文件的路径。
我的第一个想法是$_SERVER['SCRIPT_FILENAME']
,但可以从父文件中轻松操作。
接下来我想到的是getcwd()
,但这并不总是有效,apache总是提供已执行脚本的目录,但是如果是从cli或cron运行则不是这样。
如果我不能信任父文件,那么从要包含的文件中确定其位置的安全方法是什么?
答案 0 :(得分:2)
Offhand,找不到任何直接在包含链中提供“父”路径的内容,但您可以使用debug_backtrace()
:
./ z.php
<?php
include('y/y.php');
./ Y / y.php
<?php
var_dump(debug_backtrace());
然后:
$ php z.php
array(1) {
[0]=>
array(3) {
["file"]=>
string(44) "/home/marc/z/z.php"
["line"]=>
int(3)
["function"]=>
string(7) "include"
}
}