Partage
  • Partager sur Facebook
  • Partager sur Twitter

BBCODE to HTML dans les news

Sujet résolu
    24 décembre 2005 à 0:37:14

    regarde a la 11eme ligne j'en aifait un, il ne suffit pas ou c'est parce que tu l'avais pas vu?
    Sinon il me met une erreur sur l'incolade apres "return"
    :(

    je te remet le code car il aurait falluque tu face un précédent et à cette heure ci :D

            <?php
            if (isset($_POST['contenu']) AND isset($_POST['titre']) AND isset($_POST['pseudo']))  //Si on a posté qq chose (avec un pseudo)
            {
                    if (!empty($_POST['contenu']) AND !empty($_POST['titre']) AND !empty($_POST['pseudo'])) //Si ce que l'on a posté n'est pas vide
                    {
                            $titre = $_POST['titre'];
                            $contenu = $_POST['contenu'];
                            $pseudo = $_POST['pseudo'];
                                                    $contenu = htmlentities($contenu,ENT_QUOTES);
                            $contenu = nl2br($contenu);
    function BBcodetoHTML($contenu)
    {
    $contenu = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $contenu);
    $contenu = preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $contenu);
    $contenu = preg_replace('!\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]!isU', '<span style="color:$1">$2</span>', $contenu);

    return $contenu
    }

                                                           
                            mysql_connect("localhost", "root", "");
                            mysql_select_db("test")
           
    mysql_query("INSERT INTO news (titre, contenu, timestamp, pseudo, valide) VALUES ('" . $titre . "', '" . $contenu . "', '" . time() . "', '" . $pseudo . "', '0')");
    //Insertions dans la base avec  0 comme valeur
             
                            echo '<br /><b>Votre news a été postée avec succès, un admin va bientot se charger de l\'accepter si elle convient.</b> <br /> <br />';
                    }
                    else
                    {
                            echo '<b>Veuillez remplir tous les champs</b>'; //Les champs ne sont pas tous remplis
                    }
            }
            ?>
    • Partager sur Facebook
    • Partager sur Twitter
      24 décembre 2005 à 2:10:27

      Salut

      c'est vraiment crade comme code... Et admettons que tu ais besoin de bbcode dans une autre section, comment feras tu ?
      Voici une autre manière, tu crées une page que tu nommes bbcode.php :

      function bbcode($texte)
      {
              $bbcode = array(
              '!\[B\](.*)\[\/B\]!isU',
              '!\[S\](.*)\[\/S\]!isU',
              '!\[G\](.*)\[\/G\]!isU',
              '!\[I\](.*)\[\/I\]!isU',
              '!\[P\](.*)\[\/P\]!isU',
              '!<p><br />!isU',
              '!\[couleur=(red|green|blue|yellow|gray|black)\](.*)\[\/couleur\]!isU',
              '!\[size=(small|medium|large|x-large)\](.+)\[\/size\]!isU',
              '!^https?://[a-z0-9?._/-]+([a-zA-Z0-9_-]+=[a-zA-Z0-9_-]+&?)*$!i',
              '!\[url=(https?://(.*))\](.*)\[\/url\]!isU',
              '!\[url\](.*)\[\/url\]!isU',
              '!\[IMG\](.*)\[\/IMG\]!i',
              '!\[MAIL\]([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{3,4})\[\/MAIL\]!isU'
              );
             
              $xhtml = array(
              '<span style="text-decoration: line-through;">$1</span>',
              '<span style="text-decoration: underline;">$1</span>',
              '<span style="font-weight: bold">$1</span>',
              '<span style="font-style: italic;">$1</span>',
              '<p>$1</p>',
              '</p>',
              '<span style="color: $1">$2</span>',
              '<span style="font-size: $1">$2</span>',
              '<a href="$0">$0</a>',
              '<a href="$1">$3</a>',
              '<a href="$1">$1</a>',
              '<img src="$1" alt="image" />',
              '<a href="mailto:$1">$1</a>'
              );
             
              $texte = preg_replace($bbcode, $xhtml, $texte);
              return($texte);
      }


      On n'oublie pas le point-virgule pour signifier la fin d'une instruction. tu uploades ça sur ton FTP, ensuite, tu appelles bbcode.php sur chaque page dans laquelle tu en as besoin en y insérant l'instruction (au début):
      require('bbcode.php');


      Pour utiliser la fonction, c'est simple.
      Admettons que tu ais le retour de formulaire $_POST['message']. On va procédé comme suit :
      if(isset($_POST['message']))
      {
         $message = htmlentities($_POST['message']);
         echo bbcode($message); /* voici l'affichage du message parsé */
      }


      Bon courage. @+
      • Partager sur Facebook
      • Partager sur Twitter
        24 décembre 2005 à 11:07:29

        merci beaucoup scaler je ne savais pas que l'on pouvais faire comme ca de plus tu m'a appris pas mal de trucs.
        Je vais donc faire ainsi sa sera plus simple pour appeler mon bbcode partout... merci encore a toi et a tout ceux qui m'ont aidé comme thunderseb et lyric!!
        a bientot ;)
        • Partager sur Facebook
        • Partager sur Twitter

        BBCODE to HTML dans les news

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown