Preg_replace et les retour à la ligne? [Résolu]

Messages postés
19
Date d'inscription
dimanche 2 janvier 2005
Dernière intervention
3 août 2008
- - Dernière réponse : Shibo_Sources
Messages postés
19
Date d'inscription
dimanche 2 janvier 2005
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!
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
167
Date d'inscription
lundi 17 janvier 2005
Dernière intervention
8 avril 2007
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_eXon
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
0
Merci
Hello,

preg_replace("/\[quote\](.+?)\[\/quote\]/m"," ...
Commenter la réponse de malalam
Messages postés
19
Date d'inscription
dimanche 2 janvier 2005
Dernière intervention
3 août 2008
0
Merci
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é :(
Commenter la réponse de Shibo_Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.