You're using a lot of memory here... Try using fgets for each line instead of one big file(). That way, you're only working with one line at a time and can forget it when you're done.
On Wednesday 29 October 2003 01:12 pm, John wrote: > (I'm reposting this as it didn't seem to take the first time. If it's a > dupe, I apologize.) > > Hey all. I'm attempting to count the number of unique message IDs from a > Microsoft Exchange 2000 tracking log. While the code below works, it takes > forever to run. Running through a 16mb log file takes like 10 minutes. > > If anyone could suggest a better way of doing this, that would be great. > Also, below the PHP code, is an example of an Exchange tracking log (Which > is tab delimited). > > Thanks in advance for the help. > > John > > Here is the code I'm using: > > <? > ini_set("max_execution_time", 1200); > $filename="20031025.log"; > > $file=file($filename, "r"); > > $count=count($file); > > $array=array(); > > //first 6 lines of the log are header and empty lines > $i=5; > while ($i<=$count) > { > > $line=explode("\t",$file[$i]); > > //the MSGID is always the ninth entry in the array > $data=$line[9]; > > //Exchange puts a blank line between each entry in the log file, this > creates an empty entry in the array > if (!empty($data)) > { > if (!in_array ($data, $array)) > $array[]=$data; > } > > $i++; > } > > $arraycount=count($array); > echo $arraycount,"<BR>"; > ?> > > Here is an example of the Exchange tracking logs: > > 2003-10-26 0:0:35 GMT 10.0.0.1 file-server - > Exchange-Server 10.0.0.50 [EMAIL PROTECTED] 1019 > [EMAIL PROTECTED] 0 0 799 > 1 2003-10-26 0:0:35 GMT 0 Version: 5.0.2195.5329 - - > [EMAIL PROTECTED] - > > 2003-10-26 0:0:35 GMT 10.0.0.1 file-server - > Exchange-Server 10.0.0.50 [EMAIL PROTECTED] 1025 > [EMAIL PROTECTED] 0 0 799 > 1 2003-10-26 0:0:35 GMT 0 Version: 5.0.2195.5329 - - > [EMAIL PROTECTED] - > > 2003-10-26 10:13:43 GMT - - - Exchange-Server - > [EMAIL PROTECTED] 1020 > [EMAIL PROTECTED] 0 > 0 952 1 2003-10-26 10:13:42 GMT 0 - - - > [EMAIL PROTECTED] - > > 2003-10-26 10:13:43 GMT - - SMTP-Server > Exchange-Server - [EMAIL PROTECTED] 1031 > [EMAIL PROTECTED] 0 > 0 952 1 2003-10-26 10:13:42 GMT 0 - - - > [EMAIL PROTECTED] - > > 2003-10-26 0:45:59 GMT 192.168.1.2 SMTP-Server.domain.com - > Exchange-Server 10.0.0.50 [EMAIL PROTECTED] 1019 > [EMAIL PROTECTED] 0 0 15188 > 1 2003-10-26 0:45:59 GMT 0 Version: > 95.5329 - - [EMAIL PROTECTED] - > > 2003-10-26 0:45:59 GMT 192.168.1.2 SMTP-Server.domain.com - > Exchange-Server 10.0.0.50 [EMAIL PROTECTED] 1025 > [EMAIL PROTECTED] 0 0 15188 > 1 2003-10-26 0:45:59 GMT 0 Version: > 95.5329 - - [EMAIL PROTECTED] - -- Evan Nemerson [EMAIL PROTECTED] -- "Businesses may come and go, but religion will last forever, for in no other endeavor does the consumer blame himself for product failure." -Harvard Lamphoon -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php