PHP 計數器規零 問題解法方法
在學期間,幫實驗室寫了一個計數器,利用 file 當成存檔的媒介,但是常常一陣子會被重置,到最近在慢慢的看 php document 的時候,發現了問題了。
當兩個訪客同時間進入時,會產生數值歸零(雖然機會小,但對高流量網站很大機會發生)
果然是這樣,歸零是很少發生。但是被規零還是很令人苦惱。解決方法如下:
$fp = fopen("counter.dat", "w");
flock($fp, LOCK_EX); // do an exclusive lock
fwrite($fp, $counter);
flock($fp, LOCK_UN); // release the lock
fclose($fp);在寫檔前後,先把檔案 lock 起來,就可以解同時寫入造成規零的問題了。
留言
張貼留言
,,