2

我有一个正在用 fwrite 写入的文本文件,我将如何删除这个文本文件的所有内容,以便我可以重新写入它。我试图找到另一个功能,但没有运气。

我正在使用的示例代码,我想在输入此信息之前将其清除:

$string = ', {"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}';
    $fp = fopen('data_old.txt', 'a');
    fwrite($fp, $string);
    fclose($fp);
4

5 回答 5

8

如果您查看 的 PHP 文档fopen,您将在第二个参数中看到可用的“模式”列表。您正在传递"a",这意味着追加。你想通过"w"这意味着“写”。

'a' 只供书写;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

'w' 只为书写而打开;将文件指针放在文件的开头并将文件截断为零长度。如果该文件不存在,请尝试创建它。

于 2012-05-02T23:11:25.390 回答
3

您可以在以下位置更改模式参数fopen

$fp = fopen('data_old.txt', 'w+');

顺便说一句,w+如果你也想从中读取,我使用它,因为你可以使用w.

于 2012-05-02T23:11:08.613 回答
1

使用 w 选项而不是 fopen 中的 a 选项。

像 fopen('file.txt','w');

这将指针放在文件的开头而不是结尾

http://php.net/manual/en/function.fopen.php

于 2012-05-02T23:11:57.150 回答
0

要覆盖现有文件,请使用 fopen 的只写模式,这将打开文件进行写入并将指向文件的开头设置并将文件截断为零长度:

$string = ', {"key": "'.$info['Name'].'", "value": "'.$info['Name'].'"}';
$fp = fopen('data_old.txt', 'w');
fwrite($fp, $string);
fclose($fp);
于 2012-05-02T23:13:46.070 回答
0

你可以用另一种方式做到这一点

$file_destination = "./your_text_file_name.txt";
unlink($file_destination);
$your_data = "ABCabc";
$handle = fopen ($file_destination, "a+");
fputs($handle, $your_data);
fclose($handle);
于 2017-11-28T10:36:13.780 回答