我有一个文本文件,每天最多有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清空此文本文件?
答案 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);