0

我有一个名为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);
}
4

1 回答 1

0

你想用

debug_backtrace();

它将告诉您从哪里调用函数,然后使用该值,例如:

$called_from = debug_backtrace();

$data = $content . "\n" . $called_from[0] . ';' . $ip . ';' . date('Y.n.d H:i');

在此处阅读有关此功能的更多信息

于 2013-07-28T18:26:10.953 回答