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

Fornikator -  
 A.Nonymous -
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

  1. dsy73 Messages postés 9003 Date d'inscription   Statut Contributeur Dernière intervention   2 547
     
    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
  2. Fornikator
     
    Oui mais je souhaite avoir un script PHP
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. A.Nonymous
     
    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