2011-10-06 104 views
0

我看到这个代码首先创建文件,关闭它,然后用'a'打开它,写入它,然后关闭它。有没有办法简化它。这个想法是,如果文件名存在,它需要被覆盖。我也不明白unset的观点。有必要吗?这个fopen代码可以改进吗

$fp = fopen($file_name, 'w'); 
fclose($fp); 
unset($fp); 
$fp = fopen($file_name, 'a'); 
fputs($fp, "sometext"); 
fclose($fp); 
unset($fp); 

回答

1

来自php.net,在f的模式下:仅供打印;将文件指针放在文件的开头,并将文件截断为零。如果文件不存在,请尝试创建它。

换句话说,开放写入,并覆盖或创建必要的。无需使用追加模式。

$fp = fopen($file_name, 'w'); 
fputs($fp, "sometext"); 
fclose($fp); 
+0

“这个想法是,如果文件名存在,它需要被覆盖。“ – zerkms

+0

@zerkms确切地说,在开始时,我创建它并覆盖可能具有相同名称的任何东西。然后从那一刻起,我只是写信给这个文件。 – sameold

+0

对不起,我该睡觉。你只需要用'w'打电话给fopen。见http://php.net/manual/en/function.fopen.php并向下滚动到'模式'部分。 – lynks

1
file_put_contents($file_name, 'sometext'); 

而且,不,unset()你的情况毫无意义。

+0

那么文件放内容创建文件,如果它不存在? – sameold

+0

@sameold:是的确如此:“如果文件名不存在,则创建该文件;否则,现有文件将被覆盖,除非设置了FILE_APPEND标志。” – zerkms