caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Mo 30.01.2006 17:43
Titel
|
|
|
Code: | <?
$FtpHost = 'ftp.foo.bar';
$FtpUser = '';
$FtpPass = '';
$LogFileDir = '../logs';
$TmpLogFile = 'tmp_logfile.gz';
// ftp verbindung
$conn_id = ftp_connect($FtpHost);
// einloggen
$login_result = ftp_login($conn_id, $FtpUser, $FtpPass);
// verb prüfen
if ((!$conn_id) || (!$login_result)) {
echo 'ftp geht nich';
echo 'ftp@' . $FtpHost . ':' . $FtpUser;
die;
}else {
echo 'ftp@' . $FtpHost . ':' . $FtpUser;
}
//LogFilenamen einlesen:
$LogList = ftp_nlist($conn_id, $LogFileDir);
if (!empty($LogList)){
foreach($LogList as $value){
if(StrLen($value) >= 12){ /bedingung welche files eingelesen werden solln
$tmphndl = fopen($TmpLogFile, 'r+');
ftp_fget($conn_id, $tmphndl, $value, FTP_BINARY);
$lines = gzfile($TmpLogFile, 0);
fclose($tmphndl);
foreach ($lines as $line) {
$TXT = $line;
$r_ip = '(\d{1,3}.?\d{1,3}.?\d{1,3}.?\d{1,3})(.+)';
$r_datum = '\[(\d+/.*?/\d+):(\d+:\d+:\d+)( )?(\+\d+)\]( )*';
$r_datei = '"(get|post) (/.*?) (.*?)"( )*';
$r_status = '(\d+)( )*';
$r_dim = '(\d+)( )*';
$r_ref = '(".*?")*( )*';
$r_brow = '(".*?")*';
$pattern = $r_ip.$r_datum.$r_datei.$r_status.$r_dim.$r_ref.$r_brow;
preg_match('~'.$pattern.'~i', $TXT, $array);
// und ab mit array in die datenbank
/*
ip : $array[1]
datum : $array[3]
zeit : $array[4]
zeitzone : $array[6]
get/post : $array[8]
datei : $array[9]
header : §array[10]
status : $array[12]
größe in byte : $array[14]
referer : $array[16]
browser : $array[18]
*/
}
}
}
}
ftp_quit($conn_id);
?> |
/////|edit
bevor die daten in die db kommen filter ich voher die irrelevanten sachen raus wie bilder, stylesheets etc:
Code: | $FileType = strtolower(substr($array[9], strrpos($array[9], '.')));
if($FileType != '.gif' && $FileType != '.jpg' && $FileType != '.js' && $FileType != '.ico' && $FileType != '.css' && StrLen($FileType) >= 2){
//speichern
} |
mir wär ne lösung ganz recht, wo ich am anfang der datei die irrelevanten dateien definiere in nem array zb
was dann unten automatisch verglichen wird.
wie könnte man das machen?
Zuletzt bearbeitet von am Mo 30.01.2006 18:39, insgesamt 2-mal bearbeitet
|
|