用php清空文件

用php清空文件,php,Php,可能重复: 如何使用php命令清空服务器上的.txt文件?首先使用unlink()删除它,然后创建一个同名的新空文件 $fh = fopen('filename.txt','w'); // Open and truncate the file fclose($fh); 或在一行中,不存储(临时)文件句柄: fclose(fopen('filename.txt','w')); 正如其他人所说,这会在文件不存在的情况下创建该文件。将空字符串作为filename.txt的内容写入: file_p

可能重复:


如何使用php命令清空服务器上的.txt文件?

首先使用
unlink()
删除它,然后创建一个同名的新空文件

$fh = fopen('filename.txt','w'); // Open and truncate the file
fclose($fh);
或在一行中,不存储(临时)文件句柄:

fclose(fopen('filename.txt','w'));

正如其他人所说,这会在文件不存在的情况下创建该文件。

将空字符串作为
filename.txt的内容写入:

file_put_contents('filename.txt', '');

这里有一种仅在文件已存在且使用
file\u exists
时才清空的方法,因为在
file\u exists
调用和
fopen
调用之间,文件可能不再存在

$f = @fopen("filename.txt", "r+");
if ($f !== false) {
    ftruncate($f, 0);
    fclose($f);
}

只需打开它进行书写:

if (file_exists($path)) {     // Make sure we don't create the file
    $fp = fopen($path, 'w');  // Sets the file size to zero bytes
    fclose($fp);
}

使用
ftruncate()

可以使用以下代码

`

`
它只会将您的文件内容覆盖为空白

取消链接($file)$fp=fopen($file,'W');fclose($fp)你脑子里难道没有什么方法吗?或者干脆
把内容归档($file')
@ShaktiSingh
取消链接
不会删除,但会使文件不可移动。如果它被僵尸程序填满,它将继续成长,你将失去节省空间的机会<在
bash
中的code>echo'>file
是我所知道的
ftruncate()
最好的方法,你必须先
fopen()
它。如果您使用
fopen()
进行写入,则该文件已被截断为零字节。@Ferdinand取决于您如何打开它。@Artefactor通常-是。在这种情况下,它已经被截断了。你的评论毫无意义,只是恼人的吹毛求疵。@Ferdinand Beyer-评论没有提到其他答案的任何特殊要求,例如“不打开”或“不阅读”。截断文件的方法有很多,
ftruncate()
是一种非常有效的方法,也是最普遍的方法之一。不管是谁干的,我认为否决票是不公平的。@哼哼上校?因为他没有指定
fopen
的参数,所以“在这个特殊情况下,它已经被截断了”是错误的。事实上,
fopen
w
之外的其他东西一起使用
ftruncate
是有意义的,正如我在回答中所解释的那样。如果我的评论冒犯了你,很抱歉。正如php文档中所述,这与fopen、fwrite和fclose相同。因为fwrite不是必需的,所以这可能比fopen/fclose慢一点。很高兴知道,我对你的答案投了更高的票。看起来这是一个非常稳健的方法:)@Col。怎么样?必须使fopen免通知。@fopen列是少数几个需要无错误代码的地方之一,因为它在正常情况下发出此类通知(例如,获取远程文件失败)。如果您关注PHP开发,您就会知道讨论了这个主题,并提出了使PHP代码
@
免费的措施(我们都同意,这是一个理想的方法)(例如,将其更改为
fsockopen
,返回错误字符串)。“如果发生任何错误”(包括文件不存在或open_basedir限制),我会知道,因为
$f
将返回
false
,这就是我测试的内容。@Col.如果您知道发生了错误(返回为
false
),您仍然可以使用
error\u get\u last
来获取错误消息。@Col.显然,10年的经验并没有教会您根据优点讨论问题。如果你想求助于authority/ad homeem,我可以告诉你,我是一个PHP提交者,在PHP5.3.4中编写了对流子系统的唯一更改,并将其保留在.fclose(fopen('filename.txt','w');
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "";
fwrite($fh, $stringData);
fclose($fh);