功能中的文件名

时间:2013-07-28 18:17:41

标签: php logging ip

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

1 个答案:

答案 0 :(得分:0)

您想要使用

debug_backtrace();

这将告诉您调用函数的位置,然后使用该值,例如:

$called_from = debug_backtrace();

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

详细了解此功能here.