Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2007, 19h08   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 317
Points : 43
Points : 43
Par défaut Problème avec la fonction ereg_replace

Bonjour,

j'ai un problème avec ereg_remplace dans le code suivant :
Code :
1
2
3
4
5
//B
while (ereg("(\[g\])(.*)(\[/g\])",$message)!=false)
{
	$message=ereg_replace("(\[g\])(.*)(\[/g\])",'<strong>'."\\2".'</strong>',$message);
}
Quand j'écris par exemple
Tout va bien et j'ai machin qui s'affiche mais si je met :

Code :
[g]machin[/g] normal [g]machin2[/g]
Alors machin[/g] normal [g]machin2 s'affiche. Le ereg_remplace cherche le [/g] le plus loin au lieu de chercher le premier et du coup ça affiche n'importe quoi.

Comment je peux lui dire le rechercher le premier ?

Merci d'avance
Ceubex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2007, 19h43   #2
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Préfère les pcre aux posix.

Ta boucle est inutile, le remplacement se fait sur toutes les occurences du masques.

Code php :
$message = preg_replace('#\[g](.+)\[/g]#isU', '<strong>$1</strong>', $message;
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 13h21   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 317
Points : 43
Points : 43
merci pour tes conseils
Ceubex est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h31.


 
 
 
 
Partenaires

Hébergement Web