gpt4 book ai didi

php - 使用 PHP 制作点击计数器

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:35 25 4
gpt4 key购买 nike

使用 PHP 或 MySQL 制作点击计数器的最佳方法是什么?我在使用 PHP flock() 函数时遇到了几个文件覆盖问题,因为它没有正常工作。它试图在另一个进程的同一时间写入相同的文件,增加相同的变量,但变量值只增加了一个而不是两个,导致命中计数丢失。我尝试使用 MySQL 数据库作为计数器,但与上述方法相比,它错过了更多命中。

这是我尝试使用 flock 函数的代码:

while(!$fp=fopen($filename,"a+"))
{
usleep(100000);
}
while(!flock($fp,LOCK_EX))
{
usleep(100000);
}
while(!include($filename))
{
usleep(100000);
}
ftruncate($fp,0);
rewind($fp);
$$varname=$newval;
//$text="text changes depending on the $type value";
fwrite($fp,$text);
flock($fp,LOCK_UN);
fclose($fp);

正如我刚才所说,该脚本在同时运行两次之前工作正常。

我需要做什么才能计算每一次点击?

最佳答案

如果您只需要数据库来跟踪点击次数,那么您最好像现在一样使用文件。您缺少的是在释放锁之前将文件刷新到磁盘。参见 http://nz.php.net/flock

while(!$fp=fopen($filename,"a+")) usleep(100000);
while(!flock($fp,LOCK_EX)) usleep(100000);
while(!include($filename)) usleep(100000);

ftruncate($fp,0);
rewind($fp);
$$varname=$newval;
//$text="text changes depending on the $type value";
fwrite($fp,$text);

fflush($fp);

flock($fp,LOCK_UN);
fclose($fp);

关于php - 使用 PHP 制作点击计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23176693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com