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