印出 txt 內容,但從最新的開始
$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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最暴力的方式,直接将文件读入数组后翻转。但是不适用于大文件
如果你是用的Linux系统,请往下看,否则请退出。
在Linux系统里,我们都知道有一个命令叫做
cat
,它不是猫的意思,据有人考证是catenate
的缩写,而catenate
是另一个我们熟悉的concatenate
的同义词,据各种英汉词典的解释,这两个词的意思就是串联或者链状的意思,但在Linux里,其本质内容不过就是把一个文本文件的内容打印在屏幕上。以上只是背景介绍。有意思的地方在于
cat
命令的反义词tac
,这个命令也可以把一个文本文件的内容打印出来,但是顺序是反的!它先打印这个文本文件的最后一行,然后是倒数第二行,然后是倒数第三行。。。直到第一行。例如这样:
tac input.txt > /tmp/output.txt
,这样你就得到了一个倒着来的文件。接下来好办了。你在php里调用上面这个命令,生成一个临时文件,然后你读取这个临时文件的内容。