Expression reguliere qui regroupe toutes les occurences...
Posté : 09 déc. 2011, 11:37
Bonjour,
Je tourne en rond depuis des heures avec une expression reguliere qui est presque correcte. Il manque juste un tout petit détail qui ferait la différence mais je ne trouve pas...
Le contexte:
J'ai du code HTML avec plein de balises dont plusieurs balises img.
Parmi toutes les balises img de mon code, il y en a qui possède un src égale à "image/miniature/laphoto.jpg" avec d'autres attributs pouvant varier.
Exemple de balise img que je cherche à capturer:
J'aimerai pouvoir récupérer dans un tableau toutes les balises img ayant la valeur src égale à "image/miniature/laphoto.jpg".
Ce qui me pose problème c'est le fait que le nombre d'attribut à l'intérieur des balises images en question peuvent toutes changer (sauf l'attribut src évidement).
J'ai donc utilisé cette expression régulière:
Sauf que... ca ne marche pas car il me met toutes les occurrences dans $matches[0][0].
Pire encore: Si j'ai du texte entre deux images correctes, alors il me met le contenu qui se trouve entre les deux images + les 2 balises images.
Je crois qu'avec ce code il prend la premiere balise image qui correspond à l'attribut src que je recherche et s'arrête à la dernière image qu'il trouve dans ma variable $contenu.
Comment arriver à ce qu'il y a ci-dessous s'il vous plait ? :
Merci d'avance c'est très important pour moi et je bloque depuis hier.
Cordialement
Je tourne en rond depuis des heures avec une expression reguliere qui est presque correcte. Il manque juste un tout petit détail qui ferait la différence mais je ne trouve pas...
Le contexte:
J'ai du code HTML avec plein de balises dont plusieurs balises img.
Parmi toutes les balises img de mon code, il y en a qui possède un src égale à "image/miniature/laphoto.jpg" avec d'autres attributs pouvant varier.
Exemple de balise img que je cherche à capturer:
Code : Tout sélectionner
<img src="image/miniature/laphoto.jpg" alt='la photo' />
<img style='width:100px;' src="image/miniature/laphoto.jpg" alt='la photo' />
<img style='border:1px solid;height:50px;' src="image/miniature/laphoto.jpg" alt='la photo' />Ce qui me pose problème c'est le fait que le nombre d'attribut à l'intérieur des balises images en question peuvent toutes changer (sauf l'attribut src évidement).
J'ai donc utilisé cette expression régulière:
Code : Tout sélectionner
$src = 'image/miniature/laphoto.jpg';
preg_match_all('#(<img.*src="'.$src.'".*/>)#im', $contenu, $matches);Pire encore: Si j'ai du texte entre deux images correctes, alors il me met le contenu qui se trouve entre les deux images + les 2 balises images.
Je crois qu'avec ce code il prend la premiere balise image qui correspond à l'attribut src que je recherche et s'arrête à la dernière image qu'il trouve dans ma variable $contenu.
Comment arriver à ce qu'il y a ci-dessous s'il vous plait ? :
Code : Tout sélectionner
$matches[0][0]="<img src="image/miniature/laphoto.jpg" alt='la photo' />";
$matches[0][1]="<img style='width:100px;' src="image/miniature/laphoto.jpg" alt='la photo' />";
$matches[0][2]="<img style='border:1px solid;height:50px;' src="image/miniature/laphoto.jpg" alt='la photo' />";Cordialement