[PHP] remplacer le bb code par du html
Bonjour tout le monde,
Actuellement, j'essaye de monter le forum de mon site. Je me heurte à un problème, c'est pour remplcer le code du forum ([b], [i], [quote]...) par le code html qui convien, tout en récupérant les paramètre (ex: [size=3]), et en referment toutes les balises, même si l'utilisateur à fait des bêtises.
Je pense que quelqu'un à déjà posé cette question, mais je n'ai pas trouvé.
Mes balises serai celle que l'on trouve sur les principaux forum.
Merci encore
Actuellement, j'essaye de monter le forum de mon site. Je me heurte à un problème, c'est pour remplcer le code du forum ([b], [i], [quote]...) par le code html qui convien, tout en récupérant les paramètre (ex: [size=3]), et en referment toutes les balises, même si l'utilisateur à fait des bêtises.
Je pense que quelqu'un à déjà posé cette question, mais je n'ai pas trouvé.
Mes balises serai celle que l'on trouve sur les principaux forum.
Merci encore
5 réponses
-
ModérateurPetit exemple avec [size] .
Tu veux changer un bloc dans une phrase en transformant [size=?]Une phrase au pif [/size] en
<span style="font-size:?px>Une phrase au pif</span>
Ca donnera:<? $chaine="C'est un pic[size=9]c'est un roc[/size] que dis-je?"; /* Tu construis ton expression regulière et là je te renvoie à la page que j'ai citée avant */ $exp_reg="\[size=([0-9]{1,2})\](.*)\[/size\]"; // Remplacement $chaine=eregi_replace($exp_reg,"<span style=\"font-size:\\1px\">\\2</span>",$chaine); /* Ca te retournera "C'est un pic <span style="font-size:9px">c'est un roc</span> que dis-je?" */ echo $chaine; ?> -
ModérateurSalut,
Il faut voir du côté des expressions régulières:
http://www.commentcamarche.net/php/phpreg.php3 -
ModérateurVoir même avec ke simple remplacement d'une chaîne de caractère:
$chaine="C'est un [b]pic[/b] c'est un [b]cap[/b]"; $chaine=str_replace("[b]","<b>",$chaine); $chaine=str_replace("[/b]","</b>",$chaine); // Retournera "C'est un <b>pic</b> c'est un <b>cap</b>"; echo $chaine;
Ca c'est suffisant pour des balises figées comme [b],[u],[i]...
Mais dés qu'il s'agit de récupérer la valeur d'un [size=?], d'un [quote=?] là il faut voir du côté des expressions régulières.... -
slt
merci mai ya un probleme
si par exemple jutilise =>$msg = htmlspecialchars($_POST[msg] )
et jutilise apres
str_replace("<b>","[b]",$msg) ;
ca fonctionne po :s:s:s c koi la solution !!!!!!! -
ModérateurC'est à l'envers pour remplacer les [b] en <b>:
$msg = str_replace("[b]", "<b>", $msg) ;