2011-06-14 36 views
2

是否有一個函數,我沒有限制打開一個文件來寫入,然後關閉它。我在尋找一個功能看起來像這樣用一個函數寫入一個文件

bool thefunction(string line, string path, string mode); 

是我想距離路徑內容,然後從文件末尾或者在開始擦除所有內容在文件中寫什麼定義爲模式參數。 好吧,這聽起來有點挑剔,但這是主意。我想數一數,並需要一個文件來增加它的值。

+5

即使你使用'file_put_contents()'寫的增加值到文件中,並沒有真正幫助您避免競爭條件。當您讀取文件中的值並將新值寫出時,仍然會有時間。您需要一個原子操作,它讀取舊值,遞增它,並將其寫回。用文件IO做這件事的唯一方法是通過'flock()'。實際上,使用memcached會更容易,它提供了原子增量操作。 – 2011-06-14 00:07:01

回答

4

調查file_put_contents()。如果您需要不同於file_put_contents()創建的權限,則您仍然需要chmod()該文件。

例子:

// This writes a line to a file, appending to what's already there 
$success = file_put_contents("/path/to/file.txt", "This string goes into the file\n", FILE_APPEND); 
+0

答案不能縮短......謝謝邁克爾 – user544262772 2011-06-14 00:05:45

+0

@Oddantfr樂於幫忙。正如@Frank Farmer在上面提到的那樣,儘管如此,它對於種族條件並不是免疫的。 – 2011-06-14 00:08:28

相關問題