Preg_replace et les retour à la ligne?

Résolu
Signaler
Messages postés
18
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
3 août 2008
-
Messages postés
18
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
3 août 2008
-
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

Messages postés
166
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
8 avril 2007
1
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
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
Hello,

preg_replace("/\[quote\](.+?)\[\/quote\]/m"," ...
Messages postés
18
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
3 août 2008

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é :(