# get_caller.php
-
<?php
-
-
function get_caller_info($logFile = "call_info.log"){
-
$callInfos = array();
-
$callFuncs = array();
-
$curTime = date('y-m-d h:i:s',time());
-
$traces = debug_backtrace();
-
$j = 0;
-
$length = count($traces)-1;
-
for ($i = $length; $i >=0; $i--){
-
$trace = $traces[$i];
-
$file = $trace['file'];
-
$line = $trace['line'];
-
$func = $trace['function'];
-
$args = $trace['args'];
-
$argsv = join(",", $args);
-
$tInfo = $curTime." ".$file."(".$line.")->".$func."(".$argsv.")";
-
array_push($callInfos, $tInfo);
-
$tFunc = $file."->".$func."()";
-
array_push($callFuncs, $tFunc);
-
$j++;
-
}
-
-
$callInfoStr = join(";",$callInfos);
-
$callFuncStr = join(";",$callFuncs);
-
$callFuncMd5 = $curTime." ".md5($callFuncStr);
-
file_put_contents($logFile, $callFuncMd5."\n",FILE_APPEND);
-
-
$logFileMd5 = $logFile.".md5";
-
$contMd5 = $callFuncMd5.":".$callInfoStr;
-
file_put_contents($logFileMd5, $contMd5."\n",FILE_APPEND);
-
-
return $callInfos;
-
}
-
- ?>
# test_caller.php
点击(此处)折叠或打开
-
<?php
-
require dirname(__FILE__).'/get_caller.php';
-
-
function b($pa,$pb){
-
$t=$pa.$pb;
-
get_caller_info();
-
return $t;
-
}
-
-
function c($pa,$pb,$pc){
-
$t=$pa.$pb.$pc;
-
get_caller_info();
-
return $t;
-
}
-
function a() {
-
b('b1','b2');
-
for ($i = 0; $i <10; $i++){
-
c('c'.$i,'c2','c3');
-
}
-
}
-
-
a();
-
- ?>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26250550/viewspace-2127637/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26250550/viewspace-2127637/
本文介绍了一个PHP脚本,该脚本通过使用debug_backtrace()函数来收集和记录函数调用堆栈的信息。这些信息被保存到日志文件中,可用于调试和追踪程序执行流程。
312

被折叠的 条评论
为什么被折叠?



