用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);