function FTPXFER(){//Fichier Parfois présents dans les Logs 1And1, parfois pas
$dir="2001/log/";$file="../logs/ftp.log";$CS=filesize($file);
$Next=@file_get_contents($dir."FtpI");//87274octets,curseur de lecture !
if($CS<$Next)$Next=0;//Si Curseur > Taille Fichier
if($Next>($CS-600000))$Next2=$CS;else $Next2=600000+$Next;//prochain curseur, sinon on le fait évoluer pour lite progressivement le fichier !
writefichier($dir."FtpI",$Next2,'',"w+");//Ecriture du prochain curseur de lecture
echo"Next:$Next/$CS";//histoire d'y voir clair
$Flux=file_get_contents($file,0,NULL,$Next,600000);//Php5 permet la Lecture du fichier depuis $Next sur 600.000 octects de data :)
$LN=explode("\n",$Flux);
FOREACH($LN as $v){//Pour chaque ligne qui correspond à l'enregistrement "STOR" ereg pour choper les infos qui nous intéressent uniquement
if(ereg("\.jp",$v))NULL;//We don't give a Fuck on this one !
elseif(ereg("u46228702(.*) \"STOR (.*)\"",$v,$t))$FTP[abs(crc32($t[2]))].="\n$t[1] $t[2]";
//Crc32 pour retrouver une clé unique par enregistrement !
}//90.14.77.64 UNKNOWN u46228702 [08/Aug/2008:14:41:27 +0200] "STOR VakaAout2008.jpg" 226 54645
FOREACH($FTP as $v)$FTP2.=$v;
$FTP2=str_replace(" +0200","",$FTP2);//on s'en tappe du décalage horaire
writefichier("$dir*FTPXFER.Log",$FTP2,'',"a");//écriture en append
}
FTPXFER();
*Le Must serait de mettre chaque ligne dans un tableau, les comparer par les distances de Levenshtein, et ne conserver que l'enregistrement, la dernière date de modification du fichier, pas l'inverse !
-mat [07/Aug/2008:18:26:32] "STOR index.php" 226 2634
-mat [07/Aug/2008:18:27:26] "STOR index.php" 226 2640
-mat [07/Aug/2008:18:29:11] "STOR index.php" 226 2642
**Permet notamment de créer des comptes FTP spéciaux pour retracer les modifications du fichier quand on ne fait aucune SVN comme moi et que je suis habitué aux projets solo
No comments:
Post a Comment