0
我有一个PHP柜台的问题。我需要计算两个变量,用|分隔,但计数器通常重置为|1
。我已经使用了flock
函数,但它仍然不起作用。此外有时它不会增加变量的值。PHP柜台重置
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);
如何修复代码?
这是你的作业吗? :D – Hydroid
这个问题该怎么办? – Megadv
为什么你在'flock'调用中做了一个非阻塞,然后用while循环阻塞了脚本?为什么不让操作系统阻止? – webbiedave