Récupérer la date et le nom d'un log

Fermé
Fornikator - Modifié par Fornikator le 3/09/2010 à 17:47
 A.Nonymous - 18 sept. 2010 à 14:00
Bonjour,

Depuis 3 semaine je cherche comme récupéré la date dans un log, voici comment il est présenté :

XXX.XX.XX.XXX site.com - [30/Apr/2009:16:40:21 +0200] "GET /dossier/image.png HTTP/1.1   
XX.XXX.XX.XXX site.com - [30/Apr/2009:16:50:34 +0200] "GET /dossier/image.png HTTP/1.1   
XX.X.XXX.XX site.com - [30/Apr/2009:16:70:10 +0200] "GET /dossier/image.png HTTP/1.1


Donc je veux récupéré les dates (30/Apr/2009:16:40:21 et les convertire en timestamp) ainsi que le nom du fichier (image.png).

J'ai essayer avec des explode() mais impossible.

Merci d'avance.

Voici la base du code que j'ai essayé :

<?php  
$fichier = file_get_contents('fichier.log');  
$log = explode("", $fichier);  
print_r($log);
?>

7 réponses

Uo
0
Up
0
dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 482
4 sept. 2010 à 22:07
As-tu essayé un outil comme logparser qui permet d'importer des logs web dans une base de données ?
Ainsi tu feras des requêtes vers la base de données avec toutes les données par colonne.

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07
0
Oui mais je souhaite avoir un script PHP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UP....
0
...
0
...
0
Vive les expressions régulières :)

$reg = '¤\[(?P<d>\d+)\/(?P<M>\w+)\/(?P<Y>\d{4}):(?P<H>\d+):(?P<i>\d+):(?P<s>\d+)¤';
if(
preg_match( $reg, $line , $matches )
)
{
var_dump( $matches );
}

Possible aussi d'utiliser, question de goût :
$reg = '¤\[(\d+)\/(\w+)\/(\d{4}):(\d+):(\d+):(\d+)¤';
0