время
|
|
Глава 26 Функции 57
в один файл и читают последние несколько
строк этого файла. Обратите внимание на функцию tail ( ) , которая работает очен ь
быстро независимо от размеров читаемого файла. Например:
<?
if (!$tail_inc) : // чтобы не включать файл дважды
$tail_inc = 1;
function tail($file, $num) { // читаем $num последних строк
// файла $file
Global $tail_start_buf ; // предполагаемая длина строки
if ($tail_start_buf = = 0) $tail_start_buf = 80;
402 Часть IV. PHP-функции
$appxlen = $tail_start_buf; //примерная длина строки для расчета
$flen = filesize ($file); // размер файла
$out = array(); // то, что вернется
$fp = @fopen($file, Лг');
if ($fp) {
do {
if ($num*$appxlen > $flen) $pos = 0; // вычисляем, откуда читать файл
else $pos =$flen — ($num*$appxlen) ;
$out = _readfile($fp,1 $pos, $num); // читаем строки до конца файла
//,в следующем цикле длина строки будет равна длине средней
// прочитанной строки, умноженной на 2
$appxlen = ($flen - $pos + 1)*$num*2/count($out); //*!*
}
while