我使用基本脚本计算访问我网站的访问者:
<?php
if(!isset($_COOKIE['countedUser'])) {
setcookie("countedUser", "0", time() + (86400 * 30));
$countfile = fopen("counterfile.txt", "w+") or die("Unable to open file!");
$new = intval(fgets($countfile)) + 1;
fwrite($countfile, $new);
fclose($countfile);
}
echo file_get_contents('counterfile.txt');
Counterfile包含数字0
这适用于从0到1,但在此之后它不起作用。
答案 0 :(得分:0)
最可能的原因是fgets($countfile)
始终返回NULL
。
由于intval(NULL)
= 0
因此,$new++
永远不会超过1。
答案 1 :(得分:0)
当Cookie不存在时,您已1
初始化并递增。但是,当它存在时你没有增加。
if(!isset($_COOKIE['countedUser']))
{
//initialize cookie
}
else
{
// increment current value
}
我假设你会知道什么是
...从网站发送并存储在用户的 上的小块数据 用户浏览时用户的网络浏览器计算机。
答案 2 :(得分:0)
每次打开时都会截断counterfile.txt
:
w +:开放阅读和写作;将文件指针放在文件的开头,并将文件截断为零长度。如果该文件不存在,请尝试创建它。
请注意,您可能需要flock()
手柄以防止竞争条件。 (LOCK_EX =独占锁定,LOCK_SH =共享锁定)