note 86248 added to function.fseek

From: Date: Thu, 09 Oct 2008 14:42:19 +0000
Subject: note 86248 added to function.fseek
Groups: php.notes 
Request: Send a blank email to php-notes+get-145211@lists.php.net to get a copy of this message
read x lines from log file end marc dot roe at gmail dot com improved a bit speed but this makes reading even more faster :) test on my server: 2megs file with his function read elapsed 5 sec vs mines 0.03 sec faster with large and small file function __file_backread_helper(&$haystack,$needle,$x) { $pos=0;$cnt=0; while( $cnt < $x && ($pos=strpos($haystack,$needle,$pos)) !==false ){$pos++;$cnt++;} return $pos==false ? false:substr($haystack,$pos,strlen($haystack)); } function file_backread($file,$lines,&$fsize=0){ $f=fopen($file,'r'); if(!$f)return Array(); $splits=$lines*50; if($splits>10000)$splits=10000; $fsize=filesize($file); $pos=$fsize; $buff1=Array(); $cnt=0; while($pos) { $pos=$pos-$splits; if($pos<0){ $splits+=$pos; $pos=0;} fseek($f,$pos); $buff=fread($f,$splits); if(!$buff)break; $lines -= substr_count($buff, "\n"); if($lines <= 0) { $buff1[] = __file_backread_helper($buff,"\n",abs($lines)+1); break; } $buff1[] = $buff; } return str_replace("\r",'',implode('',array_reverse($buff1))); } end of dirty code ---- Server IP: 82.135.230.5 Probable Submitter: 195.14.188.109 ---- Manual Page -- http://www.php.net/manual/en/function.fseek.php Edit -- https://master.php.net/note/edit/86248 Del: integrated -- https://master.php.net/note/delete/86248/integrated Del: useless -- https://master.php.net/note/delete/86248/useless Del: bad code -- https://master.php.net/note/delete/86248/bad+code Del: spam -- https://master.php.net/note/delete/86248/spam Del: non-english -- https://master.php.net/note/delete/86248/non-english Del: in docs -- https://master.php.net/note/delete/86248/in+docs Del: other reasons-- https://master.php.net/note/delete/86248 Reject -- https://master.php.net/note/reject/86248 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#145211) next »