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
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 ....