(RESOLU) Souci avec preg_replace

Salut à tous,

Depuis hier soir j’essaie de venir à bout de ce bout d’expression régulière…

Alors donc :


$patterns[] = '`\[vid\]([[:alnum:]] ://[^[:space:]]*[[:alnum:]#?/&=])\[/vid\]`';
$replaces[] = '<object width="425" height="335"><param name="movie" value="$1"></param><embed src="$1" type="application/x-shockwave-flash" width="425" height="350"></embed></object>'; 
$string = preg_replace($patterns, $replaces , $string);

Le code fonctionne bien… seulement s’il n’y a qu’une seule occurence des balises [vid]…[/vid]
Mais quand y’en a deux ou plusieurs, il englobe le premier [vid] et le dernier [/vid]

Je cherche donc à résoudre ce petit souci, lui dire qu’il s’arrête à la première balise [/vid] qu’il rencontre… mais sans succès…

J’ai bien cherché dans la doc… mais y’a rien de plus… et certains mettent les lettres “si” à la fin de leurs délimiteurs, j’ai pas réussi à savoir à quoi ils servent

Merci de votre aide.
Edité le 11/11/2007 à 17:47

Joue avec l’option ungreedy. -> fr2.php.net…

 '`\[vid\]([[:alnum:]] ://[^[:space:]]*[[:alnum:]#?/&=])\[/vid\]`U';

Merciii :smiley:

Ca fonctionne correctement maintenant, heureusement que t’es là ^^