Php et traitement d'un fichier de log

cable -  
 Intox -
salut,

j'ai un fichier de log dont je veux extraire certains champs, tout d'abord j'aimerais supprimer la première ligne puis pour les autres lignes prendre les deuxièmes et troisièmes champs pour les afficher dans une page web sous forme de tableau.... les champs du fichiers log sont séparés par des ";".
J'arrive pas à mettre ça en place en php ou sinon en bash unix.

Merci de votre aide

Cable

3 réponses

  1. Intox
     
    Salut,

    tu crées un compteur, tu mets le chemin de ton fichier dans une variable, tu utilises la fonction explode() qui te met tout le contenu de ton fichier dans un tableau, ce qui donne :

    <?php

    $i = 1 // On commence à la deuxième ligne.
    $monFichier = "chemin/monFichier.log"

    if (file_exists($monFichier ))
    {
    // Ouverture du fichier
    $file = fopen($monFichier , "rb");

    while($ligne = fgets($file))
    {
    // Exclusion des lignes vides
    if (strlen(trim($ligne)))
    {
    // On lis les chaines séparées par des ";"
    $tabContenuMonFichier = explode(";",$ligne);

    // Suivant les index du tableau on obtient ce que l'on veut
    $nom = $tabContenuMonFichier [0];
    }
    $i++; // Le compteur te permet de récupérer les enregistrements // là ou tu veux et par cas de faire des traitements spécifiques
    // pour certaines lignes.
    }
    }
    1
    1. Intox
       
      Désolé pour l'indentation du code, c'est la première fois que je poste sur le forum :)
      0
  2. Nettogrof Messages postés 522 Statut Membre 672
     
    Salut

    Je ne suis pas un pro en PHP mais voici la facon que je fais:

    <CODE>
    $fichierLog = "stat/exemple.log";

    $ouvLog = fopen ($fichierLog , "r");
    if ($ouvLog){
    $logs = file($fichierLog);
    fclose($ouvLog);
    print " <TABLE BORDER=1><TR><TH>2e element</TH><TH>3e element</TH></TR>";
    for ($ligne = 1 ; $ligne < count($logs) ; $ligne++){
    $element = explode(";", $logs[$ligne]);
    print "<TR><TD>$element[1]</TD><TD>$element[2]</TD></TR>";
    }
    print "</TABLE>";
    }
    </CODE>

    C'est ma facon de faire... si ca peut t'aider!! gêne-toi pas pour t'en servir

    Nettogrof tseb era seiromem emoS
    www.chyl.ca/jeux/clans/
    0
  3. IDNoires
     
    Pas besoin de fopen normalement...

    $aFichier = file("nomfichier.txt") or die("Impossible d'ouvrir le fichier");

    for ($i = 1; $i < count($aFichier); $i++ )
    {
    list($champ1, $champ2, $champ3, $champ4) = split(';', $aFichier[$i]);

    // affichage...
    }
    0