用PHP清除文本文件

时间:2015-03-04 14:39:16

标签: php file

我有一个文本文件,每天最多有500行文本。我正在设置一个cron作业,以便在一天结束时手动清除文件,但我无法清除它。我已经在线查看并尝试了下面的方法,但似乎没有清除文本文件...(我在我的服务器上运行该文件并使用传输FTP客户端检查.txt文件以检查文本文件和500多行文本仍在那里。)

$handle = fopen ("emails.txt", "w+");
fclose($handle);
file_put_contents('emails.txt', '');
$handle = fopen("emails.txt", "w+");
fwrite($handle , '');
fclose($handle);

如何使用PHP清空此文本文件?

4 个答案:

答案 0 :(得分:1)

这对我有用:

$f = fopen('emails.txt','r');
$content = file('emails.txt');
array_splice($content, 0, 500);
file_put_contents('emails.txt', $content);
fclose($f);

答案 1 :(得分:0)

看起来你想要截断你的文件。

尝试使用w,而不是w+ http://www.tizag.com/phpT/filetruncate.php

您可能还想查看错误日志。如果web / apache用户无法写入该文件,则不会发生任何重大事件。

答案 2 :(得分:0)

如果你在cron任务上有这个,你可能想要使用sed。 Sed可以从文件中删除任意数量的行。

Unix Sed Command to Delete lines in file

sed '1d' file删除文件中的第一行,而sed '2,4d' file则删除第2行到第4行。

如果您是通过cron执行此操作,请确保从/(root)转发包含文件的完整路径。

答案 3 :(得分:0)

假设您的脚本有权写入文本文件,并且这两个文件位于同一目录中。我猜你没有从同一目录运行脚本,所以你可以试试这个:

$handle = fopen (__DIR__."/emails.txt", "w");
fclose($handle);