印出 txt 內容,但從最新的開始

发布于 2022-09-11 19:08:17 字数 306 浏览 23 评论 0

$fh = fopen('../storage/xxx.txt','r');
      while ($line = fgets($fh)) {
        echo($line).'<br>';
      }
      fclose($fh);

因為寫入時都是一筆一筆往下延伸

1
2
3
4
5
6
7...

因此打印出來的內容會是舊到新
有辦法使最新的內容在最上面嗎?

7...
6
5
4
3
2
1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伪心 2022-09-18 19:08:17

最暴力的方式,直接将文件读入数组后翻转。但是不适用于大文件

$file = file('a.txt');
$result = array_reverse($file);
恋竹姑娘 2022-09-18 19:08:17

如果你是用的Linux系统,请往下看,否则请退出。

在Linux系统里,我们都知道有一个命令叫做cat,它不是猫的意思,据有人考证是catenate的缩写,而catenate是另一个我们熟悉的concatenate的同义词,据各种英汉词典的解释,这两个词的意思就是串联或者链状的意思,但在Linux里,其本质内容不过就是把一个文本文件的内容打印在屏幕上。

以上只是背景介绍。有意思的地方在于cat命令的反义词tac,这个命令也可以把一个文本文件的内容打印出来,但是顺序是反的!它先打印这个文本文件的最后一行,然后是倒数第二行,然后是倒数第三行。。。直到第一行。

例如这样:tac input.txt > /tmp/output.txt,这样你就得到了一个倒着来的文件。

接下来好办了。你在php里调用上面这个命令,生成一个临时文件,然后你读取这个临时文件的内容。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文