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 20/09/2006, 09h17   #1
Invité de passage
 
Inscription : mars 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 7
Points : 2
Points : 2
Par défaut regex : problème de motif

Bonjour,
Cela fait deux jours que je recherche le motif qui va bien mais il y a quelques choses que je ne dois pas comprendre...

Au départ j'ai une chaine type :
Code :
j'ai du texte<img style="width:140px" src="../../image.jpg" alt="commentaire">du texte ou pas selon<img style="width:140px" src="../../autre_image.jpg" alt="autre_commentaire">
et je voudrais extraire les balises img pour leur ajouter un lien pour ouvrir les images directement en popup dynamiquement.

Mais le soucis c'est qu'il me prend de <img jusqu'u dernier >...

Je me permets de vous exposer mon code enfin une des innombrables versions...
Code :
1
2
3
4
	 $chaine2 = '45445454<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">gfdgdfg<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">fghfdh fdh';
 
eregi('<img([a-zA-Z[:space:][:punct:][:digit:]]{1,})">', $chaine2,$out);
echo "resultat : ".$out[0];
Merci de votre aide

arno
poonoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 10h15   #2
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

tu as essayé de réaliser ce que tu veuix avec str_replace ?
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 21h43   #3
Invité de passage
 
Inscription : mars 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 7
Points : 2
Points : 2
Citation:
Envoyé par trotters213

tu as essayé de réaliser ce que tu veuix avec str_replace ?
Bonsoir,

Str_replace ne correspond pas à mon besoin car mes chaines de carctères à analyser ne sont jamais les même.

En fait je dois récupérer toutes les balises <img> des pages, récupérer leur 'source' et leur 'alt' et rajouter un javascript pour faire un pop-up.

Ca marche presque si ce n'est ce motif d'expression régulière que je n'arrive pas à affiner...

MErci
ARno
poonoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 08h29   #4
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
et bien tu n'as qu'à tiliser strpos() qui te permet de chercher la première occurence d'une chaine dans une autre chaine : http://www.expreg.com/equivalence.php
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 09h15   #5
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
regarde les tutoriaux sur les expressions regulieres

je te conseille d'utiliser preg plutot que ereg, c'est plus performant et tu peux faire plus de choses. Notemment spécifier des modificateurs globaux a ton masque, comme U qui correspond je crois a ce que tu cherches. A appliquer comme ca : "#masque#U" (le caractere # peut etre remplacé par ce que tu veux, /, ou autre chose)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 17h26   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Par ailleurs le tableau multidimensionnel (bi) accueillant le résultat ($out) me semble mal utilisé. Pour voir ce que vous otebenez utiliser la fonction print_r (cf FAQ).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 17h48   #7
Invité régulier
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 5
Points : 5
salut,

en fait je passais par la pour le meme probleme...

donc voila une expression qui (normalement) devrait donner tous les ALT et SRC de tes images:
Code :
1
2
3
$chaine2 = '45445454<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">gfdgdfg<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">fghfdh fdh';	 
preg_match('/(.*<img style=".*" src="(.*)" alt="(.*)">.*)+/i', $chaine2,$out);
var_dump($out);
mais qui me retourne:
Citation:
array(4) {
[0]=>
string(249) "45445454<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">gfdgdfg<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">fghfdh fdh"
[1]=>
string(249) "45445454<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">gfdgdfg<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil.jpg" alt="tutu a un chapeau pointu">fghfdh fdh"
[2]=>
string(32) "/serveur/ccnt/xmedia/accueil.jpg"
[3]=>
string(24) "tutu a un chapeau pointu"
}
donc en fait seule la derniere partie trouvée est retrounée...

en fait suis dans le meme probleme:
Code :
1
2
3
4
$chaine = "tadidou<tr><td class='titrenum2'>6h</td><td class='titrenum2'>7h</td><td class='titrenum2'>8h</td><td class='titrenum2'>9h</td><td class='titrenum2'>10h</td><td class='titrenum2'>11h</td><td class='titrenum2'>12h</td><td class='titrenum2'>13h</td><td class='titrenum2'>14h</td><td class='titrenum2'>15h</td><td class='titrenum2'>16h</td><td class='titrenum2'>17h</td><td class='titrenum2'>18h</td><td class='titrenum2'>19h</td><td class='titrenum2'>20h</td><td class='titrenum2'>21h</td></tr><tr><td class='coulnum21'>02</td><td class='coulnum22'>14</td><td class='coulnum21'>03</td><td class='coulnum22'>08</td><td class='coulnum21'>00</td><td class='coulnum22'>19</td><td class='coulnum21'>18</td><td class='coulnum22'>13</td><td class='coulnum21'>07</td><td class='coulnum22'>15</td><td class='coulnum21'>02</td><td class='coulnum22'>10</td><td class='coulnum21'>09</td><td class='coulnum22'>09</td><td class='coulnum21'>08</td><td class='coulnum22'>13</td></tr><tr><td class='coulnum21'>17</td><td class='coulnum22'>29</td><td class='coulnum21'>15</td><td class='coulnum22'>20</td><td class='coulnum21'>20</td><td class='coulnum22'>39</td><td class='coulnum21'>31</td><td class='coulnum22'>24</td><td class='coulnum21'>23</td><td class='coulnum22'>34</td><td class='coulnum21'>18</td><td class='coulnum22'>22</td><td class='coulnum21'>19</td><td class='coulnum22'>23</td><td class='coulnum21'>23</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>31</td><td class='coulnum22'>43</td><td class='coulnum21'>26</td><td class='coulnum22'>40</td><td class='coulnum21'>39</td><td class='coulnum22'>59</td><td class='coulnum21'>44</td><td class='coulnum22'>38</td><td class='coulnum21'>41</td><td class='coulnum22'>45</td><td class='coulnum21'>35</td><td class='coulnum22'>33</td><td class='coulnum21'>31</td><td class='coulnum22'>38</td><td class='coulnum21'>38</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>45</td><td class='coulnum22'>53</td><td class='coulnum21'>38</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>59</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>59</td><td class='coulnum22'>52</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>46</td><td class='coulnum22'>45</td><td class='coulnum21'>43</td><td class='coulnum22'>53</td><td class='coulnum21'>53</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>59</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>47</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>57</td><td class='coulnum21'>57</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr></TABLE>tadida";
$preg = "/(<tr>)(<td class='titrenum[0-9]{1}'>([0-9]{1,2})h<\/td>)*(<\/tr>)((<tr>)(<td class='coulnum[0-9]{2}'>([0-9]{2}|\&nbsp\;)*<\/td>)+(<\/tr>))*/im";
//$preg = "/<tr><td class='titrenum[0-9]'>.*<\/td><\/tr>/i";
preg_match_all( $preg, $chaine, $resultat);
mais me retroune:
Citation:
array(10) {
[0]=>
array(1) {
[0]=>
string(3451) "<tr><td class='titrenum2'>6h</td><td class='titrenum2'>7h</td><td class='titrenum2'>8h</td><td class='titrenum2'>9h</td><td class='titrenum2'>10h</td><td class='titrenum2'>11h</td><td class='titrenum2'>12h</td><td class='titrenum2'>13h</td><td class='titrenum2'>14h</td><td class='titrenum2'>15h</td><td class='titrenum2'>16h</td><td class='titrenum2'>17h</td><td class='titrenum2'>18h</td><td class='titrenum2'>19h</td><td class='titrenum2'>20h</td><td class='titrenum2'>21h</td></tr><tr><td class='coulnum21'>02</td><td class='coulnum22'>14</td><td class='coulnum21'>03</td><td class='coulnum22'>08</td><td class='coulnum21'>00</td><td class='coulnum22'>19</td><td class='coulnum21'>18</td><td class='coulnum22'>13</td><td class='coulnum21'>07</td><td class='coulnum22'>15</td><td class='coulnum21'>02</td><td class='coulnum22'>10</td><td class='coulnum21'>09</td><td class='coulnum22'>09</td><td class='coulnum21'>08</td><td class='coulnum22'>13</td></tr><tr><td class='coulnum21'>17</td><td class='coulnum22'>29</td><td class='coulnum21'>15</td><td class='coulnum22'>20</td><td class='coulnum21'>20</td><td class='coulnum22'>39</td><td class='coulnum21'>31</td><td class='coulnum22'>24</td><td class='coulnum21'>23</td><td class='coulnum22'>34</td><td class='coulnum21'>18</td><td class='coulnum22'>22</td><td class='coulnum21'>19</td><td class='coulnum22'>23</td><td class='coulnum21'>23</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>31</td><td class='coulnum22'>43</td><td class='coulnum21'>26</td><td class='coulnum22'>40</td><td class='coulnum21'>39</td><td class='coulnum22'>59</td><td class='coulnum21'>44</td><td class='coulnum22'>38</td><td class='coulnum21'>41</td><td class='coulnum22'>45</td><td class='coulnum21'>35</td><td class='coulnum22'>33</td><td class='coulnum21'>31</td><td class='coulnum22'>38</td><td class='coulnum21'>38</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>45</td><td class='coulnum22'>53</td><td class='coulnum21'>38</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>59</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>59</td><td class='coulnum22'>52</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>46</td><td class='coulnum22'>45</td><td class='coulnum21'>43</td><td class='coulnum22'>53</td><td class='coulnum21'>53</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>59</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>47</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>57</td><td class='coulnum21'>57</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr>"
}
[1]=>
array(1) {
[0]=>
string(4) "<tr>"
}
[2]=>
array(1) {
[0]=>
string(30) "<td class='titrenum2'>21h</td>"
}
[3]=>
array(1) {
[0]=>
string(2) "21"
}
[4]=>
array(1) {
[0]=>
string(5) "</tr>"
}
[5]=>
array(1) {
[0]=>
string(533) "<tr><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr>"
}
[6]=>
array(1) {
[0]=>
string(4) "<tr>"
}
[7]=>
array(1) {
[0]=>
string(33) "<td class='coulnum22'>&nbsp;</td>"
}
[8]=>
array(1) {
[0]=>
string(6) "&nbsp;"
}
[9]=>
array(1) {
[0]=>
string(5) "</tr>"
}
}
seules les dernieres occurences sont retournées
PaC_1250 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 18h08   #8
Invité de passage
 
Inscription : mars 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 7
Points : 2
Points : 2
Citation:
Envoyé par julp
Par ailleurs le tableau multidimensionnel (bi) accueillant le résultat ($out) me semble mal utilisé. Pour voir ce que vous otebenez utiliser la fonction print_r (cf FAQ).
Julp.
Bonsoir,

Je n'ai en effet pas du comprendre la fonction de $out. En effet quand je fais un var_dump sur mon tableau $out (pareil que print_r) je m'attendais à avoir une entrée par sous-chaine trouvée dans la chaine principale.

Mais en faites si j'ai bien compris c'est plutôt un tableau qui comprendra autant d'entrée qu'il y a de masque dans notre motif. Ce qui expliquerais notre cas à moi et à Pac1250.
Ca doit ressembler à preg_match selon le manuel :
Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc..


Ca complique encore mon affaire si il faut le faire en plusieurs passent...

N'empêche que je n'arrive toujours pas à récupérer l'esemble de ma balise <img et uniquement elle.

J'y retourne

MErci pour vos pistes

ARno
poonoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 19h36   #9
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
je dois ecrire trop petit...

Citation:
Envoyé par Fladnag
regarde les tutoriaux sur les expressions regulieres

je te conseille d'utiliser preg plutot que ereg, c'est plus performant et tu peux faire plus de choses. Notemment spécifier des modificateurs globaux a ton masque, comme U qui correspond je crois a ce que tu cherches. A appliquer comme ca : "#masque#U" (le caractere # peut etre remplacé par ce que tu veux, /, ou autre chose)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 19h46   #10
Invité de passage
 
Inscription : mars 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 7
Points : 2
Points : 2
Citation:
Envoyé par Fladnag
je dois ecrire trop petit...
Non, je te remercie d'ailleurs pour ton message mais j'ai regardé le manuel qui m'indique :
array preg_grep ( string pattern, array input)

C'est à dire que preg_grep attent un tableau en entrée et ressort un tableau.

LE soucis c'est que ma chaine a analyser peut faire plusieurs Ko et ce n'est pas un tableau c'est le un contenu de body comportant des balises <hx>, <p>, <div> et <img> pour la majeur parti

Par contre tu as raison je n'ai pas encore pris le temps d'aller voir le cours que tu proposais mais c'est parceque j'en ai regardé d'autres et que je n'ai pas trouvé la solution.

Bonne soirée
Arno
poonoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 23h00   #11
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
c'est plutot preg_match ou preg_match_all qu'il te faut utiliser je pense.
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2006, 14h50   #12
Invité régulier
 
Inscription : septembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 7
Points : 5
Points : 5
effectivement pour poonoo:
Code :
1
2
3
4
$chaine2 = '45445454<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil1.jpg" alt="tutu a un chapeau pointu">gfdgdfg<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil2.jpg" alt="tutu a un chapeau cornu">fghfdh fdh';
echo $chaine2; 	 
preg_match_all('/<img style=".*" src="(.*)" alt="(.*)">/U', $chaine2,$out,PREG_SET_ORDER);
var_dump($out);
a l'effet voulu grace au modificateur U:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
45445454<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil1.jpg" alt="tutu a un chapeau pointu">gfdgdfg<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil2.jpg" alt="tutu a un chapeau cornu">fghfdh fdharray(2) {
  [0]=>
  array(3) {
    [0]=>
    string(113) "<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil1.jpg" alt="tutu a un chapeau pointu">"
    [1]=>
    string(33) "/serveur/ccnt/xmedia/accueil1.jpg"
    [2]=>
    string(24) "tutu a un chapeau pointu"
  }
  [1]=>
  array(3) {
    [0]=>
    string(112) "<img style="width: 226px; height: 294px;" src="/serveur/ccnt/xmedia/accueil2.jpg" alt="tutu a un chapeau cornu">"
    [1]=>
    string(33) "/serveur/ccnt/xmedia/accueil2.jpg"
    [2]=>
    string(23) "tutu a un chapeau cornu"
  }
}
et pour moi je dois extraire mes informations sous une forme différente:
Code :
1
2
3
$chaine = "tadidou<tr><td class='titrenum2'>6h</td><td class='titrenum2'>7h</td><td class='titrenum2'>8h</td><td class='titrenum2'>9h</td><td class='titrenum2'>10h</td><td class='titrenum2'>11h</td><td class='titrenum2'>12h</td><td class='titrenum2'>13h</td><td class='titrenum2'>14h</td><td class='titrenum2'>15h</td><td class='titrenum2'>16h</td><td class='titrenum2'>17h</td><td class='titrenum2'>18h</td><td class='titrenum2'>19h</td><td class='titrenum2'>20h</td><td class='titrenum2'>21h</td></tr><tr><td class='coulnum21'>02</td><td class='coulnum22'>14</td><td class='coulnum21'>03</td><td class='coulnum22'>08</td><td class='coulnum21'>00</td><td class='coulnum22'>19</td><td class='coulnum21'>18</td><td class='coulnum22'>13</td><td class='coulnum21'>07</td><td class='coulnum22'>15</td><td class='coulnum21'>02</td><td class='coulnum22'>10</td><td class='coulnum21'>09</td><td class='coulnum22'>09</td><td class='coulnum21'>08</td><td class='coulnum22'>13</td></tr><tr><td class='coulnum21'>17</td><td class='coulnum22'>29</td><td class='coulnum21'>15</td><td class='coulnum22'>20</td><td class='coulnum21'>20</td><td class='coulnum22'>39</td><td class='coulnum21'>31</td><td class='coulnum22'>24</td><td class='coulnum21'>23</td><td class='coulnum22'>34</td><td class='coulnum21'>18</td><td class='coulnum22'>22</td><td class='coulnum21'>19</td><td class='coulnum22'>23</td><td class='coulnum21'>23</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>31</td><td class='coulnum22'>43</td><td class='coulnum21'>26</td><td class='coulnum22'>40</td><td class='coulnum21'>39</td><td class='coulnum22'>59</td><td class='coulnum21'>44</td><td class='coulnum22'>38</td><td class='coulnum21'>41</td><td class='coulnum22'>45</td><td class='coulnum21'>35</td><td class='coulnum22'>33</td><td class='coulnum21'>31</td><td class='coulnum22'>38</td><td class='coulnum21'>38</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>45</td><td class='coulnum22'>53</td><td class='coulnum21'>38</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>59</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>59</td><td class='coulnum22'>52</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>46</td><td class='coulnum22'>45</td><td class='coulnum21'>43</td><td class='coulnum22'>53</td><td class='coulnum21'>53</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>59</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>47</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>57</td><td class='coulnum21'>57</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr><tr><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>58</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td><td class='coulnum21'>&nbsp;</td><td class='coulnum22'>&nbsp;</td></tr></TABLE>tadida";
$preg = "/<td class='(coulnum[0-9][0-9]|titrenum[0-9])'>([a-zA-Z0-9&;]*)<\/td>/u";
preg_match_all( $preg, $chaine, $resultat, PREG_SET_ORDER);
ce qui me donne bien la classe et le contenu de chaques TD

pour ma part:
PaC_1250 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 13h02   #13
Invité de passage
 
Inscription : mars 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 7
Points : 2
Points : 2
Merci de votre aide, je constate qu'il faut que je repotasse mes expressions régulières car j'ai zappé pas mal de choses.

Encore merci pour votre aide et bonne semaine

Arnaud
poonoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h42.


 
 
 
 
Partenaires

Hébergement Web