note 92406 added to function.fseek
| From: | steve at studio831 dot com | Date: | Thu, 23 Jul 2009 08:49:25 +0000 |
| Subject: | note 92406 added to function.fseek | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-158613@lists.php.net to get a copy of this message | ||
Modified @ben's function to work for files larger than PHP_INT_MAX bytes.
function longTail($file, $numLines = 100)
{
$fp = fopen($file, "r");
$chunk = 4096;
$fs = sprintf("%u", filesize($file));
$max = (intval($fs) == PHP_INT_MAX) ? PHP_INT_MAX : filesize($file);
for ($len = 0; $len < $max; $len += $chunk) {
$seekSize = ($max - $len > $chunk) ? $chunk : $max - $len;
fseek($fp, ($len + $seekSize) * -1, SEEK_END);
$data = fread($fp, $seekSize) . $data;
if (substr_count($data, "\n") >= $numLines + 1) {
preg_match("!(.*?\n){".($numLines)."}$!", $data, $match);
fclose($fp);
return $match[0];
}
}
fclose($fp);
return $data;
}
----
Server IP: 209.41.74.194
Probable Submitter: 67.188.200.14
----
Manual Page -- http://www.php.net/manual/en/function.fseek.php
Edit -- https://master.php.net/note/edit/92406
Del: integrated -- https://master.php.net/note/delete/92406/integrated
Del: useless -- https://master.php.net/note/delete/92406/useless
Del: bad code -- https://master.php.net/note/delete/92406/bad+code
Del: spam -- https://master.php.net/note/delete/92406/spam
Del: non-english -- https://master.php.net/note/delete/92406/non-english
Del: in docs -- https://master.php.net/note/delete/92406/in+docs
Del: other reasons-- https://master.php.net/note/delete/92406
Reject -- https://master.php.net/note/reject/92406
Search -- https://master.php.net/manage/user-notes.php