Page 1 sur 1

problème expression régulière

Posté : 12 août 2005, 09:24
par bzayid
Bonjour,

Voilà j'ai un petit problème d'expression régulière...

Je veux reconnaître ce qui se trouve entre les balises [img]...[/img]

J'utilise donc ceci:
$contenu_page = preg_replace("#\[img\](.*)\[/img\]#", "<img src='../images/$1' alt='$1' />",$contenu_page);
Ca marche très bien... sauf dans le cas où dans mon texte j'ai deux images qui se suivent.

ex: [img]...[/img][img]...[/img] (avec ou sans espace entre les 2)

Dans cette exemple l'expression régulière considère ce qui se trouve entre la première balise [img]et%20la%20dernière%20balise[/img]

[img]...[/img][img]...[/img]

Merci de m'aider

Posté : 12 août 2005, 09:44
par ouckileou
le point d'interrogation lui dit de s'arrêter au premier [/img] rencontré
(.*?)
<?php
$contenu_page = 'du texte du texte [img]image1.jpg[/img][img]image2.jpg[/img] du texte du texte';
echo $contenu_page;
echo '<br><br>';
$contenu_page = preg_replace("#\[img\](.*?)\[/img\]+#", "<img src='../images/$1' alt='$1' />",$contenu_page);
echo htmlEntities($contenu_page);
?>
normalement ça marche
je te ré-invite à lire ce tutoriel très très instructif (même si tout ne sert pas tout de suite) : http://www.lumadis.be/regex/tuto_pcre.php#noncapturante ;)

Posté : 12 août 2005, 09:51
par bzayid
Merci,

j'avais pas vu cette subtilité... ça marche nickel !

J'ai imprimé le tuto, je vais bosser !!! ;)