2015-03-13 68 views
1

我面臨一個小問題,我想寫在一個文件,但如果是空的功能file_exists()返回true我可以繼續寫作功能或追加數據,但如果該文件不存在,我是迫使在這種情況下使用file_put_contents創建另一個選項來創建文件,並且該函數由她自己創建文件。任何方式,我想只使用無聲功能如下:@filesize('file.txt')沒有@我得到一個警告,如文件不存在,並傳遞,我想知道是否可靠使用error control operator(@)功能。先謝謝你!php E_WARNING不停止進程只返回false?

而且我的代碼:

if (@filesize('entries.txt') > 0){ 
    file_put_contents('entries.txt', ',' . time(), FILE_APPEND); 
}else { 
    file_put_contents('entries.txt', time()); 
} 

我帶着結果如下:

if(!file_exists($entries)) file_put_contents($entries, ''); 
$smilliseconds = filesize($entries) >= 10? ','. $milliseconds: $milliseconds; 
+0

雖然我還沒有嘗試過,我敢肯定,你可以不整'if'聲明做,只是用你的第一個'file_put_contents() '線。你有沒有嘗試過(例如在輸入後輸入逗號或換行符)? – jeroen 2015-03-13 14:34:10

+0

是的,我沒有'else'語句。 – 2015-03-14 00:38:55

回答

1

不,你不應該使用@運營商 - 永遠。它掩蓋了您需要了解的問題,並且幾乎總是有一個更好的方法。例如,你可以結合你的file_exists檢查這樣的:

if (file_exists('entries.txt') && filesize('entries.txt') > 0){