这是我见过的一些最奇怪的东西。
$filename = "/etc/httpd/conf/httpd.conf";
$handle = fopen($filename, "r+");
$size = filesize($filename);
$contents = fread($handle, $size);
fwrite($handle,$contents);
fclose($handle);
不应该读取文件的内容然后再写一次吗?基本上没有修改文件?此时此代码完全与append有关,它复制了在文件末尾添加$ contents的文件内容,我不明白为什么。我尝试在编写之前稍微更改字符串,这就是我发现它写到最后的结果,而不是开头。
答案 0 :(得分:2)
你的fread()
正在推进文件指针,这样当你调用fwrite
时,你的文件指针就在那里,你的写文就会从那里追加到文件中。
如果你想在读完后从头开始写入文件:
rewind($handle);