当前位置:首页 > Web开发 > 正文

PHP 简易网页访问统计

2024-03-31 Web开发

传统的网页访问统计,已经有很多,如 51la、百度统计、站长统计

一般都需要引用JS,在你的网页内嵌入JS,,这个操作存在风险,并且不可控。

可以考虑使用 【img src、css src、link href】引用统计;

使用方法:

在需要统计页面添加 <img src="http://www.mamicode.com/stat.php" />

访问记录按照站点每日存储,记录内容:time、ip、url、user_agent、统计参数(stat.php?xxxx)

使用 stat.php?null=1 禁止输出svg

后期基于记录内容可以分析访问数据;

统计代码的PHP实现:

<?php 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 <svg version="1.1" width="$w" height="15" viewBox="0 0 $w 15" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > <text x="2" y="11">$out</text> </svg> EOF; exit;

PHP 简易网页访问统计

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/40105.html