PHP 简易网页访问统计
2021-05-11 15:27
标签:org 实现 font 操作 reserve file empty 需要 imp 传统的网页访问统计,已经有很多,如 51la、百度统计、站长统计 一般都需要引用JS,在你的网页内嵌入JS,这个操作存在风险,并且不可控。 可以考虑使用 【img src、css src、link href】引用统计; 使用方法: 在需要统计页面添加 访问记录按照站点每日存储,记录内容:time、ip、url、user_agent、统计参数(stat.php?xxxx) 使用 stat.php?null=1 禁止输出svg 后期基于记录内容可以分析访问数据; 统计代码的PHP实现: PHP 简易网页访问统计 标签:org 实现 font 操作 reserve file empty 需要 imp 原文地址:https://www.cnblogs.com/zjfree/p/12052964.htmlphp
error_reporting(E_ALL & ~E_NOTICE);
define(‘ROOT_PATH‘, dirname(__FILE__) . ‘/‘);
$now = date(‘Y-m-d H:i:s‘);
$host = ‘_null‘;
$url = @$_SERVER[‘HTTP_REFERER‘] ?: ‘‘;
if (!empty($url))
{
$arr = parse_url($url);
$host = $arr[‘host‘];
}
$file = ROOT_PATH . ‘/stat/‘ . $host . ‘/stat.log‘;
$str = @file_get_contents($file);
$arr = [];
if (empty($str))
{
mkdir(ROOT_PATH . ‘/stat/‘ . $host);
$arr = [0,0,$now];
}
else
{
$arr = explode(‘,‘, $str);
}
$arr[0]++;
$arr[1] = substr($arr[2], 0, 10) date(‘Y-m-d‘) ? 0 : ($arr[1] + 1);
$arr[2] = $now;
@file_put_contents($file, implode(‘,‘, $arr));
$data = [
‘time‘ => $now,
‘ip‘ => $_SERVER[‘REMOTE_ADDR‘],
‘user_agent‘ => @$_SERVER[‘HTTP_USER_AGENT‘] ?: ‘‘,
‘url‘ => $url,
‘query‘ => @$_SERVER[‘QUERY_STRING‘] ?: ‘‘,
];
@file_put_contents(ROOT_PATH . ‘/stat/‘ . $host . ‘/‘ . date(‘Ymd‘) . ‘.log‘, json_encode($data) . PHP_EOL, LOCK_EX|FILE_APPEND);
if (!empty($_GET[‘null‘]))
{
exit;
}
// 输出svg
$out = $arr[0] . ‘/‘ . $arr[1];
$w = strlen($out) * 7 + 5;
header(‘Content-Type:image/svg+xml‘);
echo EOF
EOF;
exit;