PHP计数器重置

时间:2013-04-16 17:27:55

标签: php counter reset

我的PHP计数器有问题。我需要计算两个变量,用|分隔,但计数器经常重置为|1。我已经使用了flock函数,但它仍然不起作用。此外,有时它不会增加变量的值。

numeri.txt(柜台):

5098|561307

这是PHP脚本:

$filename="numeri.txt";
$contents=file_get_contents($filename);
$fp=fopen($filename,'a');
if(!flock($fp,LOCK_EX))
{
    while(true)
    {
        usleep(100000);
        if(flock($fp,LOCK_EX))
        {
            break;
        }
    }
}
ftruncate($fp,0);
$contents=explode("|",$contents);
$clicks=$contents[0];
$impressions=$contents[1]+1;
fwrite($fp,$clicks."|".$impressions);
flock($fp,LOCK_UN);
fclose($fp);

如何修复代码?

1 个答案:

答案 0 :(得分:2)

如果您的输出重置为“| 1”,那么您的$ contents变量不会设置为有用的任何内容。

每次尝试编写$ contents变量,以便在输出为“| 1”的情况下看到它是什么。

我认为$ contents是问题所在,但是你没有显示最初设置该变量的位置。