每30秒删除.txt文件中的第一个内容

时间:2014-01-12 00:04:16

标签: php

我有一个文件(usernames.txt),其中包含我的网站成员的每个用户名,当他们提交用户名时,它会保存在“usernames.txt”中,问题是有很多用户在那里提交用户名每天,我想要一个PHP代码或者会自动删除第一个(在顶部)用户名每30秒(即使每分钟提交超过20个用户名,我需要的脚本将成为“usernames.txt”文件较小,这将使我的服务器更快。:) 如果有人拥有或知道我正在谈论的剧本,那将是非常好的。 :) 感谢

1 个答案:

答案 0 :(得分:0)

我也 真的,真的 鼓励你看看@ http://php.net/manual/en/refs.database.php @elclanrs的建议。 真的 鼓励你。

如果没有这个,并且提出了非常高的第二位建议,我甚至建议您尝试使用serializeunserialize,这样您就可以更快地读取文件内外的数据。然后,您可以使用unserialize以数组/对象的形式读取数据,对其进行操作,然后使用serialize将其放回文件中。

进一步失败的是,您必须将文件读入内存(file_get_contents),遍历这些行,然后删除第一行,然后将整个文件写回。或者,一次读取一行(fopen),跳过第一行,将文件的其余部分写回临时文件(fputs),然后交换文件({ {1}})。

最后,假设您使用的是* nix系统,您可以使用以下内容:

rename

总而言之,你应该真正关注使用数据库。如果您不想要独立数据库,可以使用sqlite,它将write the database to a local file

  

$ dbhandle = sqlite_open('db / test.db',0666,$ error);