Bonjour,
Je suis en train d'adapter un bout de code réalisé en PERL vers du PHP.
L'idée et de parcourir un fichier (logs).
Dès que je trouve une ligne d'intérêt (preg_match) je souhaiterais récupérer alors la ligne suivante...
J'ai un problème quant au comportement de la fonction while.
C'est simple en PERL:
Ca me semble également simple en PHP mais cela ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // Parcours du fichier while (<MONFICHIER>) { // Si regex match if (/.../) { // J'affiche la ligne d'intérêt print ligne1\n; // Je parcours le reste du fichier jusqu'à la ligne suivante (inclue) while (<MONFICHIER>) { print ligne2; last; //on sort du 2° while } } }
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php $monfichier = fopen("...", "r") ; // ouverture en lecture while ( !feof($monfichier) ) { $ligne = fgets($monfichier); if(preg_match('/^\[(Mon|Tue|Wed|Thu|Fri|Sat|Sun)/i', $ligne)) { print $ligne; while (!feof($monfichier)): $ligne2 = fgets($monfichier); print $ligne2; endwhile; } } fclose ($monfichier) ; ?>
SR
Partager