0, 'lastRecs' => [], ]; fseek($fpLog, -150000, SEEK_END); while (($line = fgets($fpLog, 1024)) !== false) { if (preg_match('/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/', $line)) { $request = fgets($fpLog, 1024); $agent = fgets($fpLog, 1024); $ip = fgets($fpLog, 1024); $fileName = fgets($fpLog, 1024); $hitOrMiss = fgets($fpLog, 1024); $result['count'] ++; $result['lastRecs'][] = new LogRecord($line, $hitOrMiss, $fileName, $request, $ip, $agent); if (--$maxCount < 0) { array_shift($result['lastRecs']); } } } fclose($fpLog); $result['lastRecs'] = array_reverse($result['lastRecs']); return $result; } }