problème expression régulière

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème expression régulière

par bzayid » 12 août 2005, 09:51

Merci,

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

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

par ouckileou » 12 août 2005, 09:44

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 ;)

problème expression régulière

par bzayid » 12 août 2005, 09:24

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