用r + fopen()就像一个?

时间:2015-04-03 01:23:46

标签: php fopen

这是我见过的一些最奇怪的东西。

$filename = "/etc/httpd/conf/httpd.conf";
$handle = fopen($filename, "r+");
$size = filesize($filename);
$contents = fread($handle, $size);
fwrite($handle,$contents);
fclose($handle);

不应该读取文件的内容然后再写一次吗?基本上没有修改文件?此时此代码完全与append有关,它复制了在文件末尾添加$ contents的文件内容,我不明白为什么。我尝试在编写之前稍微更改字符串,这就是我发现它写到最后的结果,而不是开头。

1 个答案:

答案 0 :(得分:2)

你的fread()正在推进文件指针,这样当你调用fwrite时,你的文件指针就在那里,你的写文就会从那里追加到文件中。

如果你想在读完后从头开始写入文件:

rewind($handle);