parent.php:腓 - 让父母脚本名称
require_once 'child.php';
child.php:
echo __FILE__;
它会显示 '.../child.php'
哪有我得到'.../parent.php'
parent.php:腓 - 让父母脚本名称
require_once 'child.php';
child.php:
echo __FILE__;
它会显示 '.../child.php'
哪有我得到'.../parent.php'
print $_SERVER["SCRIPT_FILENAME"];
我不认为你可以这样做:__FILE__
魔常数表示写入哪个文件;这就是全部。
如果你想知道哪些PHP脚本最初被称为(被请求该URL,例如),你可能有更多的运气看$_SERVER
超全局:它包含了许多信息,包括一些会帮助你(如例如SCRIPT_FILENAME
或SCRIPT_NAME
) ;-)
所选答案仅适用于设置服务器变量的环境,并且特别是不能在CLI脚本中工作。此外,它不确定父级,但只确定最顶级的脚本文件。
通过查看$ argv [0],您可以从CLI脚本执行几乎相同的操作,但不能提供完整路径。
环境无关的解决方案使用debug_backtrace:
function get_topmost_script() {
$backtrace = debug_backtrace(
defined("DEBUG_BACKTRACE_IGNORE_ARGS")
? DEBUG_BACKTRACE_IGNORE_ARGS
: FALSE);
$top_frame = array_pop($backtrace);
return $top_frame['file'];
}
直到解决方案:
父脚本:
echo $_SERVER['SCRIPT_FILENAME'];
儿童脚本(父脚本包含文件):
echo __FILE__;
建立一个叫做 “parent.php” 文件,其内容:
include('child.php');
建立一个叫做 “child.php” 文件,其内容:
echo "My Parent is at: " . $_SERVER['SCRIPT_FILENAME'] . "<br>";
echo "I'm at: " . __FILE__;
你得到这个想法...
你必须使用basename($_SERVER["SCRIPT_FILENAME"])
或if你只喜欢剧本nam,你可以使用basename($_SERVER["SCRIPT_FILENAME"], '.php')
。
这不是正确的答案... – Neo 2014-01-14 02:52:44
只适用于Web容器的上下文。 – 2014-10-27 17:30:55