輸出檔案的最後幾行,可以對付超大檔案

2021-07-27 11:26:00 字數 931 閱讀 5739

當乙個檔案,特別是系統日誌檔案大於2個g時,1000多萬條資料,如果用file開啟返回所有行的陣列,系統會直接卡死或者記憶體爆滿。

這時,我們可以用檔案指標fseek來定位、fgetc來獲取換行符和fgets來獲取整行,配合就可以完美的快速獲取最後n行

style="font-family:microsoft yahei;font-size:14px;">

<?php

$time_start = microtime();

/*獲取大檔案最後n行方法

原理:首先通過fseek找到檔案的最後一位eof,然後找最後一行的起始位置,取這一行的資料,再找次一行的起始位置, 再取這一行的位置,依次類推,直到找到了$num行。

*/$file = "php_error.log";

// echo nl2br(tail($file, 10));

function

tail

($file, $num) else

}array_unshift($lines, fgets($fp));

if ($head) //這一句,只能放上一句後,因為到檔案頭後,把第一行讀取出來再跳出整個迴圈

$eof = "";

$num--;

}fclose($fp);

// return $lines;

$str = join('', $lines);

return

$str;

}echo nl2br(tail($file, 1));

$time_end = microtime();

$time = $time_end - $time_start;

echo

'本次程式執行時間為:' . $time . ' 秒 !

';?>

span>

python3 x輸出檔案最後幾行

file open mytxt r output file.readlines n print output 所以,你可以這麼做 file open mytxt file.seek p,2 for line in file print line,end 後面查詢原因,是因為file.seek p,2...

linux 刪除檔案最後幾行

root server a sed n a.txt root server sed a 3 1 d a.txt 或者使用上面兩條命令。刪除的是倒數3行的。如果刪除倒數300 那就把3改為300 就可以了。root server cat aa.txt aaaa bbbb cccc dddd eeee ...

linux shell 顯示檔案最後幾行

tail n 20 filename 說明 顯示filename最後20行。linux下tail命令的使用方法。linux tail命令用途是依照要求將指定的檔案的最後部分輸出到標準裝置,通常是終端,通俗講來,就是把某個檔案檔案的最後幾行顯示到終端上,假設該檔案有更新,tail會自己主動重新整理,確...