|
|
1
19
未测试的代码,但应该有效:
打电话
|
|
|
2
40
对于大型文件,使用file()将所有行读取到数组中有点浪费。以下是如何读取文件并维护最后5行的缓冲区:
您可以通过一些关于可能的行长度的启发式方法对此进行更多优化,方法是寻找一个位置,例如,从末尾开始大约10行,如果不产生5行,则返回更远的位置。下面是一个简单的实现,它演示了:
|
|
|
3
13
对于较大的文件,这会很快,但对于简单的任务来说,代码太多,如果有较大的文件,请使用这个 readfromendbyline('myfile.txt',6); |
|
|
4
10
如果您使用的是Linux系统,可以这样做:
否则,您必须计算行数并取最后5行,如下所示:
|
|
5
7
这是一个常见的面试问题。这是我去年被问到这个问题时写的。记住,您在堆栈溢出上获得的代码是使用 Creative Commons Share-Alike 具有 attribution required .
这个解决方案确实假设了最大行长度。面试官问我,如果我不能做出这样的假设,我将如何解决这个问题,并且必须适应可能比我选择的任何最大长度更长的线条。
我告诉他任何软件项目都必须做出某些假设,但我可以测试
|
|
6
5
这个不用了
|
|
|
7
4
这里的大多数选项都假定将文件读取到内存中,然后使用行。如果文件太大,这不是个好主意 我认为最好的方法是使用一些操作系统实用程序,比如Unix中的“tail”。
|
|
|
8
3
PHP的 file() 函数将整个文件读取到一个数组中。 此解决方案需要最少的输入量:
|
|
|
9
3
打开大文件
您可以使用
使用
要获取最后一行,请使用
|
|
|
10
2
此功能适用于4GB以下的大型文件。这种速度来自于读取一大块数据,而不是一次读取一个字节并计算行数。
在运行上述函数之后,您可以在一个循环中执行fgets(),一次从$fh读取每一行。 |
|
|
11
1
您可以使用我的小助手库(2个函数) https://github.com/jasir/file-helpers 然后只需使用:
|
|
|
12
0
我已经测试过这个了。它对我有用。
|
|
13
0
RAM数量最少,输出良好。我同意保罗·狄克逊的观点…
|
|
|
14
0
|
|
15
0
这是我的解决方案:
|
|
16
-2
如果你的行间用CR隔开,或者你想试试 exploding 您的$data变量:
$lines最终应该是一个数组,您可以使用sizeof()计算出记录的数量,然后只得到最后5个。 |
|
|
17
-2
这是从文本文件中读取的最后10行
|