PHP - Logfiles am wie am besten auswerten?

Benutzer-621

abgemeldet
20 April 2006
744
64
Moin,
Wollt mal fragen wie man Logfiles am besten auswerten kann um diese dann einzeln in der DB zu speichern.

Bsp:
PHP:
84.62.31.148 - - [26/Apr/2006:06:01:06 +0200] "GET /xxxxxxxxx/design/css.inc.php HTTP/1.1" 200 1629 "https://1003.xxxxxxxxx2.de/xxxxxxxxx/_standing.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 8.54"
212.227.101.211 - webxxx [26/Apr/2006:06:01:11 +0200] "GET /mysqldumper/msd_cron/crondump.pl?config=usr_webxxx_x.conf HTTP/1.0" 200 9625 "https://cronjob.de" "Cronjob.de"
212.227.101.211 - webxxx [26/Apr/2006:06:01:11 +0200] "GET /mysqldumper/msd_cron/crondump.pl?config=usr_webxxx_x.conf HTTP/1.0" 200 9624 "https://cronjob.de" "Cronjob.de"
84.62.31.148 - - [26/Apr/2006:06:01:12 +0200] "GET /xxxxxxxxx/_money.php?sec=5 HTTP/1.1" 200 21512 "https://1003.xxxxxxxxx2.de/xxxxxxxxx/_money.php?sec=5" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 8.54"
84.62.31.148 - - [26/Apr/2006:06:01:13 +0200] "GET /popup.php HTTP/1.1" 200 7802 "https://1003.xxxxxxxxx2.de/xxxxxxxxx/_money.php?sec=5" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 8.54"
84.62.31.148 - - [26/Apr/2006:06:01:14 +0200] "GET /xxxxxxxxx/jfunctions.js HTTP/1.1" 304 - "https://1003.xxxxxxxxx2.de/xxxxxxxxx/_money.php?sec=5" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 8.54"

Hab schonmal mit split/explode versucht, aber ist irgendwie dumm einmal - zu benutzen und beim anderen mal ". Evtl. könnt mit preg_* funzen???

MfG
 
Zuletzt bearbeitet:
Try this:
Code:
/(%d{1,3}\.%d{1,3}\.%d{1,3}\.%d{1,3})%s\-%s(.*?)%s\[(.*?)\]%s\"(.*?)\"%s(%d+)%s(%d+)%s\"(.*?)\"%s\"(.*?)\"/
Keine Garantie, bin selber noch am Lernen, was RegExps angeht ;)
 
theHacker schrieb:
Try this:
Code:
/(%d{1,3}\.%d{1,3}\.%d{1,3}\.%d{1,3})%s\-%s(.*?)%s\[(.*?)\]%s\"(.*?)\"%s(%d+)%s(%d+)%s\"(.*?)\"%s\"(.*?)\"/
Keine Garantie, bin selber noch am Lernen, was RegExps angeht ;)

klappt leider nicht. trotzdem thx.
 
Then try this:
Code:
~((?:\d+\.){3}\d+) (\S+) (\S+) \[(.*?)\] "(.*?)" (\d+) (\d+|-) "(.*?)" "(.*?)"~
;)
 
Die Prozentzeichen nimmt man bloß bei sprintf() :doh:
Sags halt gleich :mrgreen: Dann kann meins ja ned funktionieren.
 
Man lernt mehr aus Fehlern, wenn man sie selbst entdeckt.
newwer.gif
zwinker.gif
 
Moin,
nochmals, wie muss man es denn machen, dass

PHP:
Array
(
    [0] => 84.161.149.135 - - [22/Nov/2005:01:48:40 +0100] "GET /codes/[email protected]?x=140&y=70&r1=0&g1=0&b1=0&r2=255&g2=255&b2=255&klammid=42418 HTTP/1.1" 404 311 "https://www.lose-trader.de/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
    [1] => 84.161.149.135
    [2] => -
    [3] => -
    [4] => 22/Nov/2005:01:48:40 +0100
    [5] => GET /codes/[email protected]?x=140&y=70&r1=0&g1=0&b1=0&r2=255&g2=255&b2=255&klammid=42418 HTTP/1.1
    [6] => 404
    [7] => 311
    [8] => https://www.lose-trader.de/
    [9] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
)

Index 5 nochmals "zerlegt" wird, also GET einzeln URL einzeln und Protokoll/Version einzeln in Indizes stehen???
 
Da sollte dann ein explode(' ', $array[5], 3); reichen oder man passt den RegExp entsprechend an. Falls Dir letztere Variante lieber sein sollte, sag Bescheid, dann pass ich das an.
 
tleilax schrieb:
Da sollte dann ein explode(' ', $array[5], 3); reichen oder man passt den RegExp entsprechend an. Falls Dir letztere Variante lieber sein sollte, sag Bescheid, dann pass ich das an.

*edit*

Hab nun dieses Suchmuster gefunden.

PHP:
preg_match("/^(\S+) (\S+) (\S+) \[([^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (.*?) (\S+)\" (\S+) (\S+) \"(.*?)\" \"(.*?)\"$/", $row, $array);

und dabei kommt nun

PHP:
Array
(
    [0] => 212.204.54.199 - - [02/May/2006:02:03:08 +0200] "GET / HTTP/1.1" 200 762 "https://www.klamm.de/forum/showthread.php?t=1491" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)"
    [1] => 212.204.54.199
    [2] => -
    [3] => -
    [4] => 02/May/2006
    [5] => 02:03:08
    [6] => +0200
    [7] => GET
    [8] => /
    [9] => HTTP/1.1
    [10] => 200
    [11] => 762
    [12] => https://www.klamm.de/forum/showthread.php?t=1491
    [13] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)
)

raus, also müsste eigentlich so passen :D.
 
Zuletzt bearbeitet: