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
A voir également:

3 réponses

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
Intox
 
Désolé pour l'indentation du code, c'est la première fois que je poste sur le forum :)
0
Nettogrof Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   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
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