Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
565 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] plantage analyse d'un fichier log, fichier trop gros ? ! ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] plantage analyse d'un fichier log, fichier trop gros ? ! ?

n°431929
warp
Posté le 18-06-2003 à 15:01:29  profilanswer
 

J'ai écrit un petit script qui permet d'analyser un fichier de log,
mais ce script plante dès que le ficiher est trop gros.
Le voici :

Code :
  1. <?
  2. $fichier=fopen("trans.log", "r" );
  3. $contenu=fread($fichier, filesize("idtrans.log" ));
  4. $tableau = preg_split ("/(?=\n)/", $contenu);
  5. $nb_lignes = count ($tableau)-1;
  6. $i=$nb_lignes;
  7. while ( $i > 0 ) {
  8.         if( strstr($tableau[$i],"TRANSFERT DBF 2 MYSQL" )==true)       
  9.         {
  10.                 $j=$i-10;
  11.                 print "Date du dernier transfert $j: $tableau[$j] <br><br>";
  12.                 $i=0;
  13.         }
  14.         $i--;
  15. }
  16. ?>


 
J'utilise ce script surt un fichier de 12000 lignes,
et ça ne pose pas de problèmes.
Lorsque je lance ce script sur un fichier de 85000 lignes,
ça plante.
 
......je devrais tester les codes d'erreurs,
mais comme je suis nouveau en PHP,
je vais perdre plein du temps à chercher sur internet,
alors que mon erreur est peut-être évidente.


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
mood
Publicité
Posté le 18-06-2003 à 15:01:29  profilanswer
 

n°431964
warp
Posté le 18-06-2003 à 15:38:56  profilanswer
 

Problème résolu,
il y a une limite de mémoire par défaut,
en augmentant cette limite,
j'ai pu lire le fichier :
 

Code :
  1. ini_set("memory_limit","40M" );


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
n°431973
MagicBuzz
Posté le 18-06-2003 à 15:44:15  profilanswer
 

Euh...
 
T'est obligé de tout lire d'un coup ???
 
Parceque là ça me semble bourrin ton truc...
 
Imagine le jour où ton site fait 10 000 hits par jours (ce qui n'est pas énorme, surtout s'il y a un forum ou autre contenu dynamique)
 
Ben si tu analyses le log du mois, ça te fait 310 000 lignes...
 
A raison de 200 caractères par ligne en moyenne, ça te fait quand même un superbe fichier de 62 Mo
 
Deplus, manipuler un tableau pareil ensuite, chais pas ce que tu veux faire dedans, mais ça me semble assez lourd...

n°431976
Mara's dad
Yes I can !
Posté le 18-06-2003 à 15:44:55  profilanswer
 

C'est bien crados ce que tu fais !
Pour ton traitement, une lecture ligne par ligne du fichier est suffisante non ?
Pas besoin de stocker l'intégralité du fichier en mémoire, 2 fois en plus !
 [:grilled]


Message édité par Mara's dad le 18-06-2003 à 15:45:22

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°432168
warp
Posté le 18-06-2003 à 17:26:43  profilanswer
 

Non, je suis d'accord,
mais ça fonctionne, et j'ai fait ça assez vite.
Mais à part la taille du fichier,
je le parcourt assez vite puisque je commence par la fin,
mon but est de trouver la dernière occurence d'un texte.
Dès que je trouve ce texte, je remonte de quelques lignes, et j'ai la date que je cherche.
 
Maintenant l'idéal serait de lire le fichier ligne par ligne en commençant par la fin,
et dès que j'ai la ligne qu'il me faut,
j'arrête,
mais en PHP je sais pas faire ça (je pourrais, mais je sais pas)
demandez de le faire en C, pas de problème.
 
Donc si quelqu'un veut me pondre ce script (petit en plus j'en suis persuadé).....


---------------
Il n'est pas nécéssaire de réussir pour persévérer.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] plantage analyse d'un fichier log, fichier trop gros ? ! ?

 

Sujets relatifs
[ PHP et autre ] Les expressions régulières.Gros problème : DLL manquante..
[VRAIMENT URGENT]JS gros soucis pour lier deux <SELECT>[PHP] Comment récupérer une valeur de parametre de l'url
[PHP] indentation automatiquegenerateur de base mysql a partir d'une analyse merise ca existe?
Problème d'intégrité de l'ASP dans un fichier XML[VBA] Dernière ligne d'un fichier texte.
[Easy PHP] Simuler un temps de chargement..[PHP] Créer un user sous Linux via un mdp crypté, probleme...
Plus de sujets relatifs à : [PHP] plantage analyse d'un fichier log, fichier trop gros ? ! ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR