[PHP] remplacer le bb code par du html

pepe cyril Messages postés 43 Statut Membre -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
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

5 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Petit 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;
    
    ?>
    2
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Voir 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....
    0
  3. webtuto
     
    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 !!!!!!!
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    C'est à l'envers pour remplacer les [b] en <b>:
    $msg = str_replace("[b]", "<b>", $msg) ;
    0