相关疑难解决方法(0)

从文件中读取最后一行

我遇到了一个问题.我在Linux机器上登录,其中写了几个正在运行的进程的输出.这个文件有时会非常大,我需要从该文件中读取最后一行.

问题是这个动作将经常通过AJAX请求调用,当该日志的文件大小超过5-6MB时,它对服务器来说并不好.所以我想我必须阅读最后一行,但不要读取整个文件并通过它或将其加载到RAM中,因为这只会加载到我的盒子中.

是否有任何针对此操作的优化,以便它运行顺畅,不会损害服务器或杀死Apache?

我有的其他选择是,exec('tail -n 1 /path/to/log')但它听起来不太好.

稍后编辑:我不想把文件放在RAM中,因为它可能会变得很大.fopen()不是一种选择.

php file-io file

31
推荐指数
4
解决办法
5万
查看次数

PHP尾部-n 1的奇怪性返回多个结果

我有这个问题......回答非常好,它也是.但是,奇怪的是,如果日志文件有一个唯一的最后一行(即前几行与前一行不同),它会正确返回最后一行,tail -n 1 "file"但如果最后几行与最后一行相似,它返回所有相似的行.

让我演示给你看....

它正在阅读的文件是......

frame= 1065 fps= 30 q=1.6 size=   11977kB time=35.54 bitrate=2761.1kbits/s    
frame= 1081 fps= 30 q=2.7 size=   12174kB time=36.07 bitrate=2765.0kbits/s    
frame= 1097 fps= 30 q=2.7 size=   12332kB time=36.60 bitrate=2759.9kbits/s    
frame= 1113 fps= 30 q=3.0 size=   12487kB time=37.14 bitrate=2754.4kbits/s    
frame= 1129 fps= 30 q=2.4 size=   12652kB time=37.67 bitrate=2751.3kbits/s    
frame= 1145 fps= 30 q=2.4 size=   12824kB time=38.20 bitrate=2749.7kbits/s    
frame= 1161 fps= 30 q=2.4 size=   12996kB time=38.74 bitrate=2748.1kbits/s    
frame= 1176 fps= 30 q=2.7 size=   13162kB …
Run Code Online (Sandbox Code Playgroud)

php file tail

2
推荐指数
2
解决办法
615
查看次数

标签 统计

file ×2

php ×2

file-io ×1

tail ×1