我正在使用以下基本 PHP:
<?php
if (file_exists('count_file.txt'))
{
$fil = fopen('count_file.txt', r);
$dat = fread($fil, filesize('count_file.txt'));
echo $dat+1;
fclose($fil);
$fil = fopen('count_file.txt', w);
fwrite($fil, $dat+1);
}
else
{
$fil = fopen('count_file.txt', w);
fwrite($fil, 1);
echo '1';
fclose($fil);
}
?>
作为一个命中计数器(我宁愿没有一个,但我们坚持要这样做)。txt 文件记录了点击次数并且它可以工作......但是计数器随机(有时在几周后,有时在几个月后)决定跳闸并从 4300 下降到 11。
有人告诉我解决方法是使用文件锁定,所以我更改为以下代码:
<?php
$dat = file_get_contents('count_file.txt');
$fil = fopen('count_file.txt', 'w');
if (flock($fil, LOCK_EX)) {
echo $dat+1;
fwrite($fil, $dat+1);
flock($fil, LOCK_UN);
}
fclose($fil);
?>
现在几天后它再次从5000多个下降到13个。有人知道为什么吗?