PHP - preg_match_all() et expressions regulieres

Gill's
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 9
Inscription: 3 Jan 2006

PHP - preg_match_all() et expressions regulieres

Message le Ven Aoû 24, 2007 15:02

Bonjour,

J'ai un petit soucis avec un preg_match_all et la construction d'expressions régulieres ... J'ai consulter http://www.expreg.com et un très bon tutoriel http://www.siteduzero.com/tuto-3-168-1-les-expressions-regulieres-partie-1-2.html
mais je ne m'en sort pas ... :roll:

Voici mon code :

Je voudrais rechercher avec un preg_match_all le code suivant :
<a href="http://www.site.com/ ... jusqu'à la prochaine balise </a>

$motif='`<a href="[^>]+">[^<]+</a>`';
preg_match_all($motif,$chaine,$out);

$count=count($out[0]);

for($i=0;$i<$count;$i++)
{
echo $i,' ',$out[0][$i],'<br/>';
}


Mais dès que je veux inclure :// dans la variable $motif, ca ne marche plus, j'ai du mal avec la synthax. (j'ai l'impression que c'est surtout les 2 points qui genent)
j'ai essayé ceci mais ca n'a pas marché :
$motif=<a href="http://www.site.com/[^>]+">[^<]+</a>`';

Comment faire ?

Merci de votre aide.


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Message le Ven Aoû 24, 2007 15:17

il y a des caractères à échapper.
Voir du côté de preg_quote.
http://be.php.net/preg_quote

EDIT: l'échappement du / est spécifique, puisqu'il s'agit d'un déliminteur, voir la doc.

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

Message le Ven Aoû 24, 2007 16:28

pour te macher le boulot :
Code: Tout sélectionner
echo preg_match('/\<a href="(.*)">(.*)\<\/a>/Ui','<a href="http://URL/">AAA</a>',$matches);


puis print_r($matches)

Merci Eclipse et Regex Util ;)
note: le U est le flag Ungreedy, soit non-gourmand, qui évite que ton pattern attrape tout ce qui se situe entre le premier <a href et le dernier </a> de ta page ;)


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Message le Ven Aoû 24, 2007 16:30

(.*?) également non glouton.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités