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/12/2006, 18h14   #1
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 104
Points : 32
Points : 32
Par défaut Problème d'expression régulière

Bonjour,
Je dispose du code source d'une page HTML dans une variable ($contenu_page). Je veux faire un regex qui va m'afficher les lignes que je recherche.
La structure de la page HTML est la suivante :

blabla_html
<BR><A HREF="toto.php?id=xxx" TARGET="_blank">abc</A>
<BR><A HREF="toto.php?id=xxx" TARGET="_blank">abc</A>
<BR><A HREF="toto.php?id=xxx" TARGET="_blank">abc</A>
...
blabla_html

La regex que j'utilise :
/\d+" TARGET="_blank">\w+<\/A>$/

Le code pour moulier tout ça :

Code :
1
2
3
4
5
 
preg_match_all('/\d+" TARGET="_blank">\w+<\/A>$/',$contenu_page,$out,PREG_SET_ORDER);
echo 'pouet<br>';
echo $out[0][0];
echo '<br>toto'
Cela me donne comme résultat :
pouet

toto

Si je fais un var_dump($out) : array(0) { }
$contenu_page est ok, c sur !

Help ?
Sylver--- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 18h42   #2
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Salut,

Dans ton cas je pense qu'il faut que tu utilises l'option 'm' pour gerer les chaines sur plusieurs lignes (cf. http://uk2.php.net/manual/fr/referen...modifiers.php). Fait également attention a ce qu'il n'y ait pas d'espaces après le </A> sur la ligne en question
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 18h43   #3
Membre Expert
 
Avatar de coyotte507
 
Inscription : octobre 2006
Messages : 1 325
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : octobre 2006
Messages : 1 325
Points : 1 226
Points : 1 226
pas le temps de doneer une reponse explicative:
Code :
1
2
3
4
5
6
7
8
9
<?php $contenu_page = '<BR><A HREF="toto.php?id=000" TARGET="_blank">abc</A>
<BR><A HREF="toto.php?id=000" TARGET="_blank">abc</A>
<BR><A HREF="toto.php?id=000" TARGET="_blank">abc</A>';
 
 
preg_match_all("#\d+\" TARGET=\"_blank\">\w+</A>#",$contenu_page,$out,PREG_SET_ORDER);
echo 'pouet<br>';
print_r ($out);
echo '<br>toto'; ?>
compare avec ton code.
Mon frere me pique l'ordi.
coyotte507 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 20h10   #4
Membre Expert
 
Avatar de coyotte507
 
Inscription : octobre 2006
Messages : 1 325
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : octobre 2006
Messages : 1 325
Points : 1 226
Points : 1 226
ok voila les changements:

j'ai utilisé # à la place de /, car c'est plus différent.

j'ai utilisé des chiffres à la place de xxx

Sinon il fallait pas mettre de "$" à la fin car ça indiquait la fin du fichier.
coyotte507 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 23h42.


 
 
 
 
Partenaires

Hébergement Web