fwrite覆盖而不关闭连接

时间:2013-07-20 05:22:36

标签: php fopen

如何使用fopen

覆盖文本
$data = 'HHHHHHHHHHHHHHH';
$data2 = 'JJJJJJJJJJJJJJ';

$F = fopen('tbbbb.txt','w');
fwrite($F,$data);
fwrite($F,$data2);
fclose($F);

我想要输出

“JJJJJJJJJJJJJJ”

文件中的

4 个答案:

答案 0 :(得分:1)

您可以使用fseek()功能:

fwrite($F,$data);
fseek($F, 0);
fwrite($F,$data2);

答案 1 :(得分:1)

使用rewind返回文件的开头。

fwrite($F,$data);
rewind($F);
fwrite($F,$data2);

生成的文件内容为:

JJJJJJJJJJJJJJH

因为覆盖文件的开头并不能替换它之后的内容。你可以打电话:

ftruncate($F, count($data2));

设置文件长度。

答案 2 :(得分:0)

fwrite将始终写入光标位置的位置,并将光标导航到下一行。因此,当您编写第一个字符串时,它将写入第一行并将光标导航到下一行。 SO当前光标位置在第二行。因此,如果要覆盖特定行,则必须seek到该行。

fseek($F, <byte_position>);
fwrite($F, <string>);

答案 3 :(得分:-1)

使用file_put_contents()

file_put_contents('file.txt', $data);
echo file_get_contents('file.txt'); // HHHHHHHHHHHHHHH
file_put_contents('file.txt', $data2);
echo file_get_contents('file.txt'); // JJJJJJJJJJJJJJ