2015-03-13 71 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){