Der in diesem Artikel vorgestellte Inhalt besteht aus den letzten N Datenzeilen, die PHP aus der Datei erhalten hat. Jetzt teile ich ihn mit allen und kann auch Freunden in Not einen Verweis geben
GitHub-Quellcode
Der Code basiert auf den folgenden Problemen, Lösung angegeben:
Verwenden Sie PHP, um eine Funktion zu schreiben, um die letzten $n Zeilen einer Textdatei abzurufen. Sie muss so effizient wie möglich sein und plattformübergreifend verwendet werden können.
Ich verstehe, dass sie plattformübergreifend verwendet werden kann. Dies bedeutet, dass die Datei auf der Windows-Plattform verwendet werden kann und auf der Linux-Plattform ein Problem mit inkonsistenten Zeilenabschlüssen vorliegt. Wir haben diesen Unterschied im Code nicht berücksichtigt. Alle sind Codes unter dem Linux-System. Müssen Sie noch plattformübergreifende Probleme verstehen?
<?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();
Verwandte Empfehlungen:
PHP-Methode zum Abrufen einer bestimmten Spalte in einem Array
PHP erhält Benutzer-IP-Adressmethode
Das obige ist der detaillierte Inhalt vonPHP ruft die letzten N Datenzeilen aus der Datei ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!