Preg_replace et les retour à la ligne?

Résolu
Shibo_Sources Messages postés 18 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 3 août 2008 - 30 août 2006 à 13:22
Shibo_Sources Messages postés 18 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 3 août 2008 - 31 août 2006 à 17:00
Bonjour tout le monde,
J'ai codé une petite fonction de substitution du bbcode par du html avec preg_replace mais quand il y a un retour à la ligne preg replace ne remplace pas les balises.

Par exemple, avec [ quote ] si il y a un retour à la ligne dans le text entre les deux balises les balises ne sont pas changée. J'ai testé mon script sous windows (easyphp) et me disant que sa venais de là j'ai testé sur mon serv perso mais là non plus sa ne marchais pas.

D'ou viens le pb? De la configuration des servers ou du code?

Voici mon code pour les quotes:
$texte = preg_replace("/\[quote\](.+?)\[\/quote\]/"," ... code html de mise en forme .... $1 ....",$texte");


Quelqu'un à une idée ?
Preg_replace semble la meilleur solution pour le bbcode au vue du nombre de bbcode posté utilisant le preg_replace. Y a-t-il une autre function plus appropriée?

Merci de votre aide!
A voir également:

3 réponses

cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
30 août 2006 à 15:00
Salut,

Pour rêgler ton problème le plus simplement possible lorsque tu traite ton bbcode tu remplaces les \n par le br avant.

----------------
eXon
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 août 2006 à 16:15
Hello,

preg_replace("/\[quote\](.+?)\[\/quote\]/m"," ...
0
Shibo_Sources Messages postés 18 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 3 août 2008
31 août 2006 à 17:00
En fait j'avais déjà essayé nl2br avant le bbcode mais sa ne marchais pas alors j'ai mis ceci:

function nl2brStrict($text, $replacement = '
')
{
return preg_replace("((\r\n)+)", trim($replacement), $text);
}

Depuis sa marche.
Merci de votre aide, c'était simple mais j'ai galéré :(
0
Rejoignez-nous