note 86517 modified in function.fseek by danbrown
| From: | danbrown@php.net | Date: | Wed, 22 Oct 2008 21:39:01 +0000 |
| Subject: | note 86517 modified in function.fseek by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-145614@lists.php.net to get a copy of this message | ||
easier tail() function for php:
<?php
function tail($file, $num_to_get=10)
{
$fp = fopen($file, 'r');
$position = filesize($file);
fseek($fp, $position-1);
$chunklen = 4096;
while($position >= 0)
{
$position = $position - $chunklen;
if ($position < 0) { $chunklen = abs($position); $position=0;}
fseek($fp, $position);
$data = fread($fp, $chunklen). $data;
if (substr_count($data, "\n") >= $num_to_get + 1)
{
preg_match("!(.*?\n){".($num_to_get-1)."}$!", $data, $match);
return $match[0];
}
}
fclose($fp);
return $data;
}
?>
--was--
easier tail() function for php:
function tail($file, $num_to_get=10)
{
$fp = fopen($file, 'r');
$position = filesize($file);
fseek($fp, $position-1);
$chunklen = 4096;
while($position >= 0)
{
$position = $position - $chunklen;
if ($position < 0) { $chunklen = abs($position); $position=0;}
fseek($fp, $position);
$data = fread($fp, $chunklen). $data;
if (substr_count($data, "\n") >= $num_to_get + 1)
{
preg_match("!(.*?\n){".($num_to_get-1)."}$!", $data, $match);
return $match[0];
}
}
fclose($fp);
return $data;
}
http://php.net/manual/en/function.fseek.php