我有这个独特的点击计数器:
<?php
$log = 'hits.log';
$IP = getenv (REMOTE_ADDR);
$add = true;
$hits = 0;
if (!file_exists ($log)) {
echo "Error: $log does not exist.";
exit;
}
$h = fopen ($log, 'r');
while (!feof ($h)) {
$line = fgets ($h, 4096);
$line = trim ($line);
if ($line != '')
$hits++;
if ($line == $IP)
$add = false;
}
fclose($h);
if ($add == true) {
$h = fopen ($log, 'a');
fwrite($h, "
$IP");
fclose($h);
$hits++;
}
echo $hits;
?>
但它只计算我把它放在页面上的唯一点击量。因此,如果我将此代码放在http://site.com
上,则只显示http://site.com
的唯一匹配。我想知道我是否可以在代码中添加或编辑某些内容,以使脚本计算其他页面的唯一匹配,但会将其显示在其所在的页面上(跟踪http://site.com/yay
,但会显示{{1}的点击次数}}) 有人知道怎么做吗?感谢。
答案 0 :(得分:0)
仅举例(评论中要求)
<?php
$log = 'hits.log';
if (!file_exists ($log)) {
echo "Error: $log does not exist.";
exit;
}
$hits = (int) file_get_contents($log);
if (!isset($_COOKIE['last_visit']) or date('d.m.Y', (int) $_COOKIE['last_visit']) != date('d.m.Y')) {
setcookie('last_visit', time(), 90000); //of course you can encode it for security reason
$hits++;
file_put_contents($log, $hits);
}
echo $hits;
?>
这仍然不是计算用户数量的最佳方式。