我想知道,爲什麼PHP file_put_contents()
功能以奇怪的方式工作。爲什麼file_put_contents()不總是重寫一個文件?
我用它在一個循環中寫入一些日誌到文件,並且一切都很好(即使沒有指定標誌,也會附加新行)。當我再次啓動腳本時,它重新創建了我的文件。
從PHP文檔:
如果文件名不存在,則創建該文件。否則, 現有文件將被覆蓋,除非設置了FILE_APPEND標誌。
好的,所以我的問題是:爲什麼(當在一個循環中使用)它不覆蓋我的文件(當然沒有FILE_APPEND標誌)?錯誤或功能? :)
編輯:使用示例背景下,當發生這種情況:
$logFile = dirname (__FILE__) . '/example.log';
foreach($something1 as $sth1) {
$logData .= "Something\n";
foreach($something2 as $sth2) {
if($something_else) {
$logData .= "Line: \t" . $sth2 . "\n";
file_put_contents($logFile, $logData);
}
}
}
[http://php.net/manual/en/function.file-put-contents.php]..this should help –
如果它不覆蓋文件,那麼它會做什麼?顯示代碼的工作演示,並解釋你的期望和你實際得到的結果 –
它的工作方式..當你設置file_append它會繼續追加。最常見的例子是創建的php錯誤日誌。但是,當您將其設置爲關閉時,文件內容每次都會更改。 –