我有一个文件,可以这么说,它将包含在父文件中。我需要从子文件中可靠地确定父文件的路径。
我的第一个想法是$_SERVER['SCRIPT_FILENAME']
,但这可以很容易地从父文件操作。
下一件事我想到的是getcwd()
,但这并不总是工作,apache总是提供执行脚本的目录,但如果它是从cli或cron运行,情况并非如此。
如果我不能信任父文件,那么从要包含的文件中确定其位置的安全方法是什么?
随手,找不到任何会直接给你的"父"路径在一个包含链,但你可以使用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"
}
}