php 获取文件最后几行,php获取文件的最后N行数据
本篇文章介紹的內容是php獲取文件的最后N行數據,現在分享給大家,也可以給有需要的朋友一個參考
GitHub源碼
代碼是基于以下問題,給出的解決方案:
用php寫一個函數,獲取一個文本文件最后$n行內容,要求盡可能效率更高,并可以跨平臺使用
我理解的可以跨平臺使用,是說的文件在windows平臺和linux平臺的行結束符不一致問題,在代碼中我們沒有體現這種不同。全部是在linux系統下的代碼。跨平臺問題還需要理解?<?phpheader ("content-type:text/html;charset=utf-8");class GetFileLastNumRow{
private $filePath; private $fileMode = 'r'; private $rowNum = 3; public function __construct(array $config)
{
foreach ($config as $key => $value) { $this->$key = $value;
}
} public function run()
{
try { $handle = fopen($this->filePath, $this->fileMode);
fseek($handle, -1, SEEK_END); $contents = ""; $rowCount = 0; do { if (($str = fgetc($handle)) == "\n") { $rowCount++;
} $contents = $str.$contents;
fseek($handle, -2, SEEK_CUR);
} while ($rowCount < $this->rowNum);
var_export(trim($contents, "\n"));
fclose($handle);
} catch(\Exception $e) {
var_export($e->getMessage());
}
}
}class Test{
public function run()
{
$filePath = './TestData/GetFileLastNumRow/test.data'; $getFileLastNumRow = new GetFileLastNumRow(compact('filePath')); $getFileLastNumRow->run();
}
}$test = new Test();$test->run();
相關推薦:
總結
以上是生活随笔為你收集整理的php 获取文件最后几行,php获取文件的最后N行数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联合创新推出 28C1Q 显示器:16:
- 下一篇: 怎样挂单买到新股?