民间, 我试图回应一个在最终脚本的上下文中递归调用的所有文件的字符串 例如
我能够收集父文件和当前文件,但是没有捕获所有中间文件,除非我将名称存储在局部变量中并将其传递到最终目标。
有没有办法捕捉这种背景?
类似于以下内容
// a.php
<?php
function callme()
{
$localfile = basename(__FILE__);
$parentfile = basename($_SERVER['SCRIPT_FILENAME']);
//$self = basename($_SERVER['PHP_SELF']);
//echo $self;
//echo $b.$callfile;
echo $parentfile."_".$localfile;
}
?>
//b.php
<?php
include('a.php');
callme();
?>
// c.php
<?php
include('b.php');
?>
// index.php
<?php
include('c.php');
?>
答案 0 :(得分:1)
您可以使用get_included_files
功能。它将为您提供一个数组,其中包含到目前为止包含的文件的名称。
// a.php:
<?php
include('b.php');
var_dump(get_included_files());
==========
//b.php:
<?php
include('c.php');
==========
//c.php:
<?php
// do nothing
输出将是:
array (size=3)
0 => string 'a.php' (length=5)
1 => string 'b.php' (length=5)
2 => string 'c.php' (length=5)
请注意,如果您将其放入其中一个包含的文件中,则该功能的作用相同。您可以将函数放在
c.php
内(而不是a.php
内),输出也不会改变。