【发布时间】:2009-08-06 17:59:14
【问题描述】:
我正在尝试获取文件的最后一行。 ffmpeg 工作时,ff.log 文件每秒都会获取新数据。 日志文件如下所示:
帧= 20 fps= 0 q=7.7 大小= 40kB 时间=1.24 比特率= 266.1kbits/s
帧= 30 fps= 28 q=6.6 大小= 51kB 时间=1.90 比特率= 218.4kbits/s
帧= 40 fps= 24 q=6.6 大小= 61kB 时间=2.60 比特率= 191.4kbits/s
帧= 47 fps= 20 q=6.8 大小= 65kB 时间=3.08 比特率= 173.8kbits/s
帧= 64 fps= 22 q=7.0 大小= 84kB 时间=4.20 比特率= 163.8kbits/s
(每秒或更快地不断添加新行)
我试过了
$line = `tail -n 1 $file`;
我尝试使用带有“php tail script”的 fseek()。
两者都导致了一些奇怪的行为。
我从命令行运行我的脚本并输出:
帧= XX fps= XX q=XX 尺寸= XX 时间=XX比特率=XXkbits/s
XX 持续增加几秒钟,直到它是最后一行的值。
现在,在我的 php 脚本中,我有
echo "--$last_line--";
当我运行它时,输出是几秒钟,只是数字增加的日志行。当它到达终点时,输出是
--ame= 7119 fps= 9 q=13.8 大小= 4809kB 时间=474.50 比特率= 83.0kbits/s
请注意,第一个“--”与 $last_line 冲突,而另一个“--”不存在。
这种奇怪行为的解释是什么?
【问题讨论】:
-
尝试使用 echo "--".$line。 "--\n";也