我有一个名为functions.php的文件,我有记录访问者IP地址的功能。函数用于多个页面,因此我希望在日志中包含页面名称。代码如下所示:
function ipLog($path) {
$content = file_get_contents($path);
$ip = $_SERVER['REMOTE_ADDR'];
$data = $content . "\n" . basename(__FILE__, '.php') . ';' . $ip . ';' . date('Y.n.d H:i');
file_put_contents($path, $data);
}
问题是它总是返回functions.php而不是它所包含的页面名称。任何想法?
<小时/> 编辑:我用
$file = debug_backtrace();
$file = $file[0];
$data = $content . "\n" . basename($file['file']) . ';' . $ip . ';' . date('Y.n.d.H.i');
非常感谢。
<小时/> 编辑:最终版本:
function ipLog($path = './log/ipLog.txt') {
file_put_contents($path, date('Y.n.d.H.i.s') . ';' . $_SERVER['REQUEST_URI'] . ';' . $_SERVER['REMOTE_ADDR'] . ';' . "\n", FILE_APPEND);
}
答案 0 :(得分:0)
您想要使用
debug_backtrace();
这将告诉您调用函数的位置,然后使用该值,例如:
$called_from = debug_backtrace();
$data = $content . "\n" . $called_from[0] . ';' . $ip . ';' . date('Y.n.d H:i');
详细了解此功能here.