如何获取调用函数的脚本的名称?

时间:2009-12-27 21:59:29

标签: php

我有一个log()方法,并希望记录调用它的脚本的名称。这怎么可能在PHP?

5 个答案:

答案 0 :(得分:10)

根据调用环境,您应该查看debug_backtrace$_SERVER['PHP_SELF']

到目前为止,

debug_backtrace()将为您提供包含和函数调用的堆栈跟踪,$_SERVER['PHP_SELF']将告诉您当前正在执行的脚本,这更容易,并且可能同样适用于您想要的内容。 $_SERVER['PHP_SELF']几乎总是从浏览器调用的脚本,例如,如果您blah.com/admin.phpblah.com/articles.php都调用/pages.php来获取列表保存在博客或其他内容中的页面出现问题 - 日志会告诉您admin.phparticles.php是否正在调用脚本。但是,如果pages.php包括functions.php并且libs.php失败,并且您想知道libs.php包含它,那么这将无效 - 日志会仍显示启动包含的脚本(functions.phpadmin.php)。在这种情况下,您将使用articles.php

答案 1 :(得分:3)

你可以看一下debug_backtrace函数:在它的输出中,你应该找到你要找的东西; - )

您可以查看我几天前发布的this answer,了解更多信息和示例。

答案 2 :(得分:2)

看看debug_baktrace

$backtrace = debug_backtrace();
print_r($backtrace[1]);

答案 3 :(得分:0)

使用debug_backtrace()获取包含完整callstack的关联数组,并检查数组以从中获取您感兴趣的详细信息。

答案 4 :(得分:0)

除了已经给出的答案,一个非常低技术的答案将是或附加 _ _ FILE _ _或basename()到正在记录的字符串。 (必须在FILE中添加空格以加倍下划线才能显示)