salut tout le monde
je cherche a récupérer les informations qui se trouvent dans LES balises suivant :
<tr bgcolor='#dfe8f9'> .................</tr>
comment je peux le faire avec un regex ?
merci
salut tout le monde
je cherche a récupérer les informations qui se trouvent dans LES balises suivant :
<tr bgcolor='#dfe8f9'> .................</tr>
comment je peux le faire avec un regex ?
merci
Salut,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $str = '<tr bgcolor="#dfe8f9">Ceci est le contenu</tr>'; if (preg_match('%<tr[^>]*>(.*)</tr>%s', $str, $reg)) $res = $reg[1]; else $res = ''; echo $res; // Ceci est le contenu
merci pour la solution mais ce script me donne tout les balises <tr> alors que moi j'ai envie seulement les donnez qui sont exactement dans la balise :
voila un extrait du texte dont j'ai envie d'avoir les données qui sont entre :
<tr bgcolor='#dfe8f9'> et </tr>
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#08456b' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A108-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR21 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (10 µg/ml), homology:Mouse ( Identity: 81 % Similarity: 81 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#08456b' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A112-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR22 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (10 µg/ml), homology:Mouse ( Identity: 100 % Similarity: 100 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:147 µl, Concentration:0.34 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#08456b' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A1153-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR2/CCR10 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 70 % Similarity: 82 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#08456b' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A1154-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR21 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 100 % Similarity: 100 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#08456b' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A118-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR3 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (40 µg/ml), homology:Mouse ( Identity: 87 % Similarity: 87 %), Rat ( Identity: 93 % Similarity: 100 %)</td> <td valign='top' width=75
Et là ?
PS : Attention, j'ai édité le message entre temps ( ajout de ["\'] )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (preg_match('%<tr bgcolor=["\']#dfe8f9["\']>(.*)</tr>%s', $str, $reg)) $res = $reg[1]; else $res = '';
dommage ça marche pas : il me donne tout le contenu en une case dans le tableau $res !!!!!!!!
Elles s'y trouvent...Envoyé par kaayna
dans la chaine alpha-numérique $res.Envoyé par kaayna
Comment voulais-tu que ces informations soient renvoyées exactement ?
sous cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A1153-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR2/CCR10 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 70 % Similarity: 82 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr>
J'ai fais des tests pour que tous les (<tr bgcolor='#dfe8f9'>.*</tr>) sortent avec preg_match_all et c'est pas bon non plus...
Ca me dépasse
Ce bout de code créé pour l'exemple un tableau contenant uniquement les balises <tr> désirées.
J'éspère que cette fois-ci c'est la bonne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 echo "<table>\n"; if(preg_match_all('%(<tr bgcolor=["\']#dfe8f9["\']>.*?</tr>)%si',$str,$res,PREG_PATTERN_ORDER)){ for($i=0; $i<count($res[0]);$i++){ echo $res[0][$i]."\n"; } } echo "</table>\n";
Cette fois c’est en effet bon,
avec ["\']>.*?</tr>) au lieu de ["\']>.*</tr>)
Quelques remarques:
peut s’écrire plus simplement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for($i=0; $i<count($res[0]);$i++){ echo $res[0][$i]."\n";
et même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 foreach($res[0] as $w){ echo $w."\n";
car je ne vois pas à quoi sert le “\n“ étant donné que, pour ce que j’ai observé, il n’est pas interprêté dans un affichage HTML et qu’il n’a aucun effet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 foreach($res[0] as $w){ echo $w;
D’ailleurs, la solution que tu apportes, Eric2a, si elle permet de vérifier qu’on obtient bien l’affichage de quelque chose qui correspond apparemment à ce qu’on cherchait, ne permet toutefois pas de voir quels sont les caractères exactement attrapés, c'est a dire sans qu’ils soient interprétés comme affichage HTML.
Pour faire ceci, afficher sans interprétation, je me suis établi une fonction qui fait des transformations afin d’afficher les caractères bruts, et non pas interprétés:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 function affiche_html_sans_interpreter($x,$comment=''){ if (is_string($x)){ if ($comment!=''){ $comment = ' : '.$comment;} echo '<br/><font color="0000FF" face="Courier New">'. '~*~ <u>Affichage d\'une chaine sans interpretation HTML'.$comment.'</u>'. '</font><br/><br/>'; $ch = str_replace("\f","\\f",$x); $ch = str_replace("\n","\\n",$ch); $ch = str_replace("\r","\\r",$ch); $ch = str_replace("\t","\\t",$ch); $ch = str_replace("\v","\\v",$ch); $ch = str_replace("\x","\\x",$ch); echo htmlspecialchars($ch).'<br/>'; } elseif (is_array($x)){ if (sizeof($x)==1){ $affsize = 'du seul element';} else{ $affsize = 'des '.sizeof($x).' elements';} if ($comment!=''){ $comment = ' : '.$comment;} echo '<br/><font color="0000FF" face="Courier New">'. '~*~ <u>Affichage '.$affsize.' d\'un tableau sans interpretation HTML'.$comment.'</u>'. '</font><br/><br/>'; foreach($x as $xelem){ preg_match_all('#.+(?:\n|\z)#',$xelem,$aff,PREG_PATTERN_ORDER ); foreach($aff[0] as $w){ $w = str_replace("\f","\\f",$w); $w = str_replace("\n","\\n",$w); $w = str_replace("\r","\\r",$w); $w = str_replace("\t","\\t",$w); $w = str_replace("\v","\\v",$w); $w = str_replace("\x","\\x",$w); echo htmlspecialchars($w).'<br/>'; } echo '<br/>'; } } }
On peut ainsi vérifier précisément que les chaînes attrapées sont exactement celles que voulait kaayna, dans la présentation voulue:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 <?php $str = "<td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#dfe8f9' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#dfe8f9'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A108-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR21 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (10 µg/ml), homology:Mouse ( Identity: 81 % Similarity: 81 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#C07ED5' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#C07ED5'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A112-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR22 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (10 µg/ml), homology:Mouse ( Identity: 100 % Similarity: 100 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:147 µl, Concentration:0.34 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#88C55' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#f88C55'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A1153-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR2/CCR10 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 70 % Similarity: 82 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#68A98A' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#68A98A'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A1154-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR21 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 100 % Similarity: 100 %)</td> <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=4 width=100% valign=top> <br><br id=noprint></td></tr><tr><td bgcolor='#F5C938' colspan=4><img src='images/blue_1_1.bmp' width='100%' height=1></td></tr> <tr bgcolor='#F5C938'> <td valign=top width=100><b><span style='text-decoration: none'>LS-A118-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR3 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (40 µg/ml), homology:Mouse ( Identity: 87 % Similarity: 87 %), Rat ( Identity: 93 % Similarity: 100 %)</td> <td valign='top' width=75 nowrap align=right><b>12 264</b></td> </tr> </table>"; function affiche_html_sans_interpreter($x,$comment=''){ if (is_string($x)){ if ($comment!=''){ $comment = ' : '.$comment;} echo '<br/><font color="0000FF" face="Courier New">'. '~*~ <u>Affichage d\'une chaine sans interpretation HTML'.$comment.'</u>'. '</font><br/><br/>'; $ch = str_replace("\f","\\f",$x); $ch = str_replace("\n","\\n",$ch); $ch = str_replace("\r","\\r",$ch); $ch = str_replace("\t","\\t",$ch); $ch = str_replace("\v","\\v",$ch); $ch = str_replace("\x","\\x",$ch); echo htmlspecialchars($ch).'<br/>'; } elseif (is_array($x)){ if (sizeof($x)==1){ $affsize = 'du seul element';} else{ $affsize = 'des '.sizeof($x).' elements';} if ($comment!=''){ $comment = ' : '.$comment;} echo '<br/><font color="0000FF" face="Courier New">'. '~*~ <u>Affichage '.$affsize.' d\'un tableau sans interpretation HTML'.$comment.'</u>'. '</font><br/><br/>'; foreach($x as $xelem){ preg_match_all('#.+(?:\n|\z)#',$xelem,$aff,PREG_PATTERN_ORDER ); foreach($aff[0] as $w){ $w = str_replace("\f","\\f",$w); $w = str_replace("\n","\\n",$w); $w = str_replace("\r","\\r",$w); $w = str_replace("\t","\\t",$w); $w = str_replace("\v","\\v",$w); $w = str_replace("\x","\\x",$w); echo htmlspecialchars($w).'<br/>'; } echo '<br/>'; } } } if(preg_match_all('%<tr bgcolor=["\']#[\da-f]{6}["\']>.*?</tr>%si',$str,$res,PREG_PATTERN_ORDER)){ affiche_html_sans_interpreter($res[0]); } echo '<br/><br/><br/>'; echo "<table>\n"; foreach($res[0] as $w){ echo $w; } echo "</table>\n"; ?>
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 ~*~ Affichage des 5 elements d'un tableau sans interpretation HTML <tr bgcolor='#dfe8f9'>\r\n <td valign=top width=100><b><span style='text-decoration: none'>LS-A108-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR21 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (10 µg/ml), homology:Mouse ( Identity: 81 % Similarity: 81 %)</td>\r\n <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td>\r\n <td valign='top' width=75 nowrap align=right><b>12 264</b></td>\r\n \r\n </tr> <tr bgcolor='#C07ED5'>\r\n <td valign=top width=100><b><span style='text-decoration: none'>LS-A112-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR22 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (10 µg/ml), homology:Mouse ( Identity: 100 % Similarity: 100 %)</td>\r\n <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:147 µl, Concentration:0.34 mg/ml</i></td>\r\n <td valign='top' width=75 nowrap align=right><b>12 264</b></td>\r\n </tr> <tr bgcolor='#f88C55'>\r\n <td valign=top width=100><b><span style='text-decoration: none'>LS-A1153-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR2/CCR10 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 70 % Similarity: 82 %)</td>\r\n <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td>\r\n <td valign='top' width=75 nowrap align=right><b>12 264</b></td>\r\n </tr> <tr bgcolor='#68A98A'>\r\n <td valign=top width=100><b><span style='text-decoration: none'>LS-A1154-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR21 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (5 µg/ml), homology:Mouse ( Identity: 100 % Similarity: 100 %)</td>\r\n <td valign='top' width=75 nowrap><i>Weight:50 µg, Volume:50 µl, Concentration:1 mg/ml</i></td>\r\n <td valign='top' width=75 nowrap align=right><b>12 264</b></td>\r\n </tr> <tr bgcolor='#F5C938'>\r\n <td valign=top width=100><b><span style='text-decoration: none'>LS-A118-50</span></b></td><td valign='top' width=400>G Protein-Coupled Receptor GPR3 Rabbit anti-Human Polyclonal Antibody, usage:IHC-P (40 µg/ml), homology:Mouse ( Identity: 87 % Similarity: 87 %), Rat ( Identity: 93 % Similarity: 100 %)</td>\r\n \r\n <td valign='top' width=75 nowrap align=right><b>12 264</b></td>\r\n </tr> + la suite affichée comme table HTML
NB : dans la RE, j’ai remplacé dfe8f9 par [\da-f]{6} , au cas où les couleurs seraient changées, et surtout parce que j’ai voulu faire des essais en changeant les couleurs
.
Salut,
Tu l'as bien compris, j'avais bien hommis le ? dans l'expression.
Concernant mon choix de renvoyer les données directemment en HTML :
Pour mon test initial, j'ai utilisé la ligne
afin de m'assurer que tout soit effectivement "attrapé".
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo htmlspecialchars($res[0][$i],ENT_QUOTES,'ISO-8859-1')."<hr>\n";
Ensuite, étant donné que les informations renvoyées sont des balises HTML, j'ai trouvé préferable (peut-être à tort) de modifier le code afin de renvoyer les balises brutes (sans entitées HTML) et donc interprétables (*). D'où la présence de \n améliorant la lecture dans le code source de la page.
(*) Je pense que c'est l'objectif de kaayna : Créer un nouveau tableau à partir de plusieurs existants
Je ne comprends pas tout ce que tiu dis, Eric2, parce que je ne connais pas bien PHP et sa façon de traiter les chaînes.
Je sais
qu’une chaîne écrite avec des simples quotes ou des doubles quotes sera traitée différemment,
qu’il y a plein de fonctions PHP qui font des transformations sur des chaînes,
et que je suis obligé d’afficher les résultats de l’exécution d’un programme dans une page HTML (du moins c’est ainsi que je procède, je ne sais pas s’il y a une autre manièred de procéder)
Tout ça fait que je suis pas mal perdu concernant les chaînes en PHP.
Mais ce n’est pas une urgence pour moi de clarifier le sujet.
Merci en tous cas pour tes explications.
Partager