Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2007, 13h42   #1
Invité régulier
 
Inscription : avril 2007
Messages : 27
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : avril 2007
Messages : 27
Points : 8
Points : 8
Par défaut récupération de %cpu

mon problème je crois que comprend pas /(.{1,6})|(.{7,15}$)/

pour moi ça veut dire un groupement qui contient de 1 à 6 caractère avec un espacement à la fin ou un groupement qui contient de 7 a 15 caractère et qui ce termine en fin de ligne.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
$id_file_tomcat=fopen($tomcat,"r");
$i_tomcat=0;    
$total_tomcat=0;
 
while($ligne_tomcat=fgets($id_file_tomcat,1000))
    {
     $ligne_tomcat=ltrim($ligne_tomcat," ");
 
     preg_match_all("/(.{1,6})|(.{7,15}$)/",$ligne_tomcat,$tabs_tomcat);
 
//sauvegarde du tableau
 
     foreach($tabs_tomcat[0] as $tab_tomcat) 
         { $pid_tomcat=explode(" ",$tabs_tomcat[0][0]);
         $username_tomcat=explode(" ",$tabs_tomcat[0][1]);
         $cpu_tomcat=explode(" ",$tabs_tomcat[0][2]);
        }
$i_tomcat++;
$total_tomcat+=$cpu_tomcat[0];
}
mon problème en général c'est que je dois récupérer dans le fichier "tomcat.txt" le 0.1 le %cpu

fichier tomcat.txt contient
26038 tomcat 0.1

et c'est les lignes de commande au dessus que j'utilise.

mais cela ne marche pas. je bloque trop

merci pour les réponses d'avance
Maitrresse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 14h22   #2
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
salut,

Code :
1
2
3
4
<?php
preg_match('/^[0-9]+ [a-zA-Z]+ ([a-zA-Z0-9\.]+)$/',file_get_contents('tomcat.txt'),$result);
echo $result[1]; //affiche: 0.1
?>
  Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 14h27   #3
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
ou si tu veux pour chaque lignes :

Code :
1
2
3
4
5
6
7
8
<?php
$lines=file('tomcat.txt');
foreach($lines as $key=>$line)
{
	preg_match_all('/^[0-9]+ [a-zA-Z]+ ([a-zA-Z0-9\.]+)/i',$line,$result);
	echo $result[1][0].'<br>';
}
?>
  Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 14h49   #4
Invité régulier
 
Inscription : avril 2007
Messages : 27
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : avril 2007
Messages : 27
Points : 8
Points : 8
Par défaut récupération dans un tableau

j'ai un problème avec le motif de mon preg_match_all

les expressions régulière c'est pas mon fort.
voila mon code.
je voudrai retourner les %cpu des mon fichier tomcat.
mais dans ce fichier il y a la possibilité d'avoir plusieurs lignes

26038 tomcat 0.1
65464 tomcat 0.6
...

et il faut que le récupère c'est information dans le tableau $tabs_tomcat
surtout pour les %cpu.

je début en php je bloque dessus

je pense que c'est mon $motif qui n'est pas bon


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
$id_file_tomcat=fopen($tomcat,"r");
$i_tomcat=0;				
$total_tomcat=0;			
 
while($ligne_tomcat=fgets($id_file_tomcat,1000))
	{
 	  $ligne_tomcat=ltrim($ligne_tomcat," ");
 
$motif="/(.{1,6}[\s])|(.{7,13}[\s])|(.{14,17}$)/";
 
	  preg_match_all($motif,$ligne_tomcat,$tabs_tomcat);
 
//sauvegarde du tableau
 
	  foreach($tabs_tomcat[0] as $tab_tomcat) 
	  	{ $pid_tomcat=explode(" ",$tabs_tomcat[0][0]);
 		  $username_tomcat=explode(" ",$tabs_tomcat[0][1]);
 		  $cpu_tomcat=explode(" ",$tabs_tomcat[0][2]);
		}
 
	  $i_tomcat++;
	  $total_tomcat+=$cpu_tomcat[0];
	}
merci d'avance
Maitrresse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 19h32   #5
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 29
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 29
Points : 17
Points : 17
Par défaut Gestion des saut de ligne dans les REGEX

Si tu veux que ta REGEX travaille sur plusieur lignes rajoute un s a la fin de ta PCRE (fonctions qui commencent par preg, ne marche pas avec les POSIX)

exemple recuperer les balises d'un fichier

Code :
#<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1>#si
Je suis pas rentré dans ton code (Trop dans le mien !)
Mais pourquoi utilises tu un explode alors que les REGEX doivent suffirent à mon avis ....
marciv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 01h11   #6
Membre habitué
 
Avatar de daniel61
 
Inscription : décembre 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 109
Points : 120
Points : 120
Citation:
Envoyé par Fabouney
salut,

Code :
1
2
3
4
<?php
preg_match('/^[0-9]+ [a-zA-Z]+ ([a-zA-Z0-9\.]+)$/',file_get_contents('tomcat.txt'),$result);
echo $result[1]; //affiche: 0.1
?>
+1
daniel61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h23.


 
 
 
 
Partenaires

Hébergement Web