從我這個年齡的PHP天(幾年前)我稍微記得我有大在PHP中創建日誌文件的麻煩。在隨機時間,文件突然變得空白(空白)。我曾經非常接近這樣的:如何在高頻環境中將字符串追加到錯誤日誌文件的內容中?
$myFile = "myFile.txt";
$fh = fopen($myFile, 'a');
$str = "New Entry...\n";
fwrite($fh, $str);
fclose($fh);
那真的是一種安全的方式與一個錯誤日誌文件時,也有像500級的用戶在同一時間執行PHP腳本(通過瀏覽的網站)工作?讓我們假設有一個非常糟糕的錯誤導致每個頁面視圖產生一個錯誤日誌。然後,那可憐的myFile.txt就會以每秒100次的速度被訪問。我覺得這是行不通的。我希望我錯了。
你會怎麼做?
與file_put_contents,append是原子,所以不需要LOCK_EX,如果您使用FILE_APPEND –
感謝帕斯卡爾RTFM的另一個原因首先在這裏問問之前人類的記憶是如此波動:) – Gordon
不客氣:-)(其實,但我會刪除LOCK_EX部分,並保留FILE_APPEND一個^^) - 關於RTFM:幾個月前,這些是互斥的事實沒有在手冊中指定(我記得關於SO ^^的一個問題) –