Créer un script BBCode en PHP

ॐ Devkush ॐ

Premium
Inscription
30 Octobre 2015
Messages
588
Réactions
219
Points
2 176
Salut tous le monde ;)

Sources :



Je vais vous apprendre a créer des balise BBcode pour vos envoye en PHP .

Mon script :​
Code:
function parsebb($body)
{
        $find = array(
        "/\[br\]/is", // [br] Sauter une ligne
        "/\[url\=(.+?)\](.+?)\[\/url\]/is", // [url=votre lien] votre lien [/url]
        "/\[b\](.+?)\[\/b\]/is",  // [b] votre texte [/b] Texte en gras
        "/\[i\](.+?)\[\/i\]/is",  // [i]votre texte [/i] Texte en italique
        "/\[u\](.+?)\[\/u\]/is",  // [u] votre texte [/u] Texte Souligner
        "/\[color\=(.+?)\](.+?)\[\/color\]/is", // [color=#00000] votre texte [/color] Texte en couleurs
        "/\[size\=(.+?)\](.+?)\[\/size\]/is",  // [size=] votre texte [/size] Taille du Texte
        "/\[font\=(.+?)\](.+?)\[\/font\]/is", // [font=] votre texte [/font] Police du Texte
        "/\[center\](.+?)\[\/center\]/is",  // [center] votre texte [/center] Texte Centrer
        "/\[right\](.+?)\[\/right\]/is", // [right] votre texte [/right] Texte à Droite
        "/\[left\](.+?)\[\/left\]/is", // [left] votre texte [/left] Texte à Gauche
        "/\[img\](.+?)\[\/img\]/is", // [img] lien de votre image [/img] Inclure une Image
        "/\[email\](.+?)\[\/email\]/is" // [email] votre adresse mail [/email] Inclure une adresse mail
        );
    $replace = array(
        "<br />",
        "<a href=\"$1\" target=\"_blank\">$2</a>",
        "<strong>$1</strong>",
        "<em>$1</em>",
        "<span style=\"text-decoration:underline;\">$1</span>",
        "<font color=\"$1\">$2</font>",
        "<font size=\"$1\">$2</font>",
        "<span style=\"font-family: $1\">$2</span>",
        "<div style=\"text-align:center;\">$1</div>",
        "<div style=\"text-align:right;\">$1</div>",
        "<div style=\"text-align:left;\">$1</div>",
        "<img src=\"$1\" alt=\"Image\" />",
        "<a href=\"mailto:$1\" target=\"_blank\">$1</a>"
    );
    $body = htmlspecialchars($body);
    $body = preg_replace($find, $replace, $body);
    return $body;
}

Comment l'intégrer a un POST ?

Code:
$message = htmlspecialchars(trim($_POST['message']));
$date = htmlspecialchars(date('d/m/Y, H:i'));
$msg = parsebb($message);

Code:
$iMessage = $bdd->prepare('INSERT INTO message(message) VALUES(?)');
$iMessage->execute(array($msg));

Ne pas oublier le $msg car ces celui la qui sert a notre script le $message sert juste a convertir notre input ou textarea comme vous le désirer avec notre script et va automatiquement détecter que si vous entré une balise [ ] il faux la convertir par sa balise html mais si vous entré du HTML alors le script ne le prendra pas en compte se qui empêche certaine faille de type xss et permet au utilisateur de votre site de toujours mieux exploiter l'édition de texte :)

Je vous fourni un petit script que j'ai crée en javascript qui permet d'inclure automatiquement la balise sauter une ligne et un autre petit qui vous servira a ajouté dans vos button de balise BBcode :p

Le script qui detecte que vous avez appuyer sur la touche entrer et inclu la balise [br]
Code:
<script>
$('#message').keyup(function(e)
{  
     if(e.keyCode == 13) // 13 = touche entrer
     {
            document.getElementById('message').value += ('[br]');
      }
                });  
</script>

Le script qui inclura vos balise sur vos button

Code:
<script>
function addTextTag(text)
{
       document.getElementById('message').value += text;
}
</script>

et mètre ceci en onClick sur vos button :
<a onClick="addTextTag(' [br] '); return false" class="btn">SAUT DE LIGNE</a>

J'espeyres avoir été le plus claire possible les tuto ses pas mon truc ;)
 
Dernière édition par un modérateur:

Steganozorus

If You Can't Convince Them, Confuse Them
Premium
Inscription
20 Septembre 2012
Messages
4 453
Réactions
1 985
Points
4 675

:trollface: :rofl: j'avais remarqué sa aussi ! Sa date de 2006, le même et sa existe partout sur les communautés ! Mais dommage on s'atribue de plus en plus souvent le merite des autres ! Aucun respect des credit de l'auteur !
 
Haut