php文本文件新闻更新

时间:2011-01-06 14:16:23

标签: php

我正在尝试在php中制作新闻Feed类型的东西。

我有一个文本文件 - news.txt和一个php文件index.php。

我已完成周围的代码并打开/关闭文本文件。现在我被困在如何将新的新闻项目$ newsnew插入news.txt文件的顶部以及如何删除news.txt文件中的旧的底部新闻文件。

有没有办法在不删除整个文件并将其全部写完的情况下执行此操作?

编辑:每个新闻项只是一个小字符串,比如500个字符,一行。

6 个答案:

答案 0 :(得分:1)

使用数据库。

如果您真的必须使用文本文件,请为每个新闻项使用不同的文件,并按顺序命名:

  • news001.txt
  • news002.txt

然后你可以添加和删除文件,阅读目录并显示那里的内容。

答案 1 :(得分:0)

如果这是一个XML文件,您可以读取它,解析它并删除DOM中的最后一个子项。但是如果你在数据库中拥有所有数据,那么每次都可以更容易地重写文件。

编辑:编辑后:是的,你可以这样做:

  • 将新行写入新文件
  • 逐行读取旧文件并将其写入新文件
  • 跳过最后一行(通过计数或EOF检测)
  • 删除旧文件并重命名新

答案 2 :(得分:0)

不,没有。但您可以考虑以相反的顺序存储消息。这样你只需要在新消息到达时附加到news.txt。

答案 3 :(得分:0)

如果不再将整个内容写出来,您将无法在文件的开头添加前缀。您可以使用fopen()的“a”模式标志追加到它的末尾,但仍然要删除您需要再次写出整个文件的最旧项目。

实际上,数据库是解决方案,而不是单个文本文件。

答案 4 :(得分:0)

使用file()函数将news.txt中的项目作为数组导入,并使用array_unshift()添加新的第一项,使用array_pop()删除最后一项。将数组加入一个字符串并将其写入news.txt:

$items = file('news.txt');
array_unshift($items, 'New item 1');
array_pop($items);
$newstext = implode(PHP_EOL, $items);
// write $newstext to the external file

答案 5 :(得分:0)

使用平面文本文件有很多方法可以做到,但我不确定它是否值得。您可以使用一些轻量级结构文件或嵌入式数据库。例如,将它存储在普通文件中的SQLite,无需额外的设置。

相关问题