RE: [PHP] Parsing through an Apache Log File?

From: Date: Wed, 04 Jan 2006 21:24:44 +0000
Subject: RE: [PHP] Parsing through an Apache Log File?
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-228173@lists.php.net to get a copy of this message
Jay Paulson (CE CEN) wrote: > Hello everyone! I've been given the responsiblity of coding an apache access_log parser. > What my tasks are to do is to return the number of hits for certain file extensions that happen on > certain dates with specific IP address. > > As of now I'm only going back 7 days in the log looking for this information and I'm > only looking for 5 file types (.doc, .pdf, .html, ..php, and .flv). I'm using the fgets() > function so I can read the file line by line and do the matches that I need to do and increment the > counters as needed. Right now I have 3 loops looking for everything, which seems to me not to be > the best way of doing this. I've also encountered that a line may have the file extension I > want but it's actually the soucre of another file. (see below for example) > > Log file example: > I want the first line but not the second line. The second line has a ..css file which was used > by the .html file therefore I don't want this line. I do want the first line that all it has > is .html and no other files. > > 10.25.40.64 - - [01/Jan/2006:07:33:18 -0600] "GET /home.html HTTP/1.1" 200 8220 > "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" > 10.25.40.64 - - [01/Jan/2006:07:33:18 -0600] "GET /styles/redesign.css HTTP/1.1" 200 > 2381 "http://wfmu.wfm.pvt/home.html" "Mozilla/4.0 > (compatible; MSIE 6.0; Windows NT 5.1; SV1)" > > At any rate, here's some of my psudo code/code for what I'm trying to accomplish. I > know there has to be a better way for this and I'm looking for suggestions! <snip> Save yourself a ton of work. Dump the raw logs into a db, and you can do all the queries on the db. Something like this... I took your idea and did a search on Google and found that this has already been done for me! Check it out! http://www.php-scripts.com/php_diary/012103.php3 Very cool :) jay

« previous php.general (#228173) next »