• STATISTIQUES
  • Il y a eu un total de 1 membres et 5223 visiteurs sur le site dans les dernières 24h pour un total de 5 224 personnes!


    Membres: 2 609
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] w3challs
    Ce site propose différents types de défis informatiques: piratage, craquage, cryptographie, stég...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [FR] Zenk-Security
    La communauté zenk-security a pour objet principal la sécurité informatique, nous sommes des tou...
    Hacking
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Php] Comment transformer le BBCode en HTML
17-06-2011, 04h23 (Modification du message : 19-11-2012, 19h18 par InstinctHack.)
Message : #1
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
[Php] Comment transformer le BBCode en HTML
Bonjour à tous ;-)
Comme vous le savez, permettre à l’utilisateur de poster du HTML c'est une très très mauvaise idée ... si vous en êtes pas encore convaincu, je vous invite a lire mon tuto sur les failles XSS. L'alternative pour permettre à l’utilisateur de formater leur texte est ce que l'ont nomme couramment le BBCode. C'est ce que nous utilisons ici sur MyBB et dans tous les forums de cette génération.

Voici une version simplifier d'une fonction que j’ai récemment utilisée sur un site internet.
Code PHP :
<?php

function bbcode($string)
{
   
$string stripcslashes($string);
   
    
/* Les smileys */
    
$string str_replace(":D""<img src='images/smileys/lol.gif'>"$string); // :D
    
$string str_replace(":P""<img src='images/smileys/p.gif'>"$string); // :P
    
$string str_replace(":)""<img src='images/smileys/lucky.gif'>"$string); // :)
    
$string str_replace(":(""<img src='images/smileys/red.gif'>"$string); // :(
    
$string str_replace(":/""<img src='images/smileys/hm.gif'>"$string); // :/
    
$string str_replace(";)""<img src='images/smileys/wink.gif'>"$string); // ;)
    
$string str_replace("8/7""<img src='images/smileys/head.gif'>"$string); // 8/7
    
$string str_replace(":-/""<img src='images/smileys/wink.gif'>"$string); // :-/
   
    /* Mise en forme texte */
    
$string preg_replace('/\[b\](.+?)\[\/b\]/''<b>$1</b>'$string); // [ b ][ /b ]
    
$string preg_replace('/\[i\](.+?)\[\/i\]/''<i>$1</i>'$string); // [ i ][ /i ]
    
$string preg_replace('/\[u\](.+?)\[\/u\]/''<u>$1</u>'$string); // [ u] [ /u ]
    
$string preg_replace('/\[size=(.+?)\](.+?)\[\/size\]/''<font size=$1>$2</font>'$string); // [ size=10 ][ /size ]
    
$string preg_replace('/\[color=(.+?)\](.+?)\[\/color\]/''<font color=$1>$2</font>'$string); // [ color=#FFFFFF ][ /color ]
   
    /* Images et url */
    
$string preg_replace('/\[img\](.+?)\[\/img\]/''<img src="$1" />'$string); // [ img ][ /img ]
    
$string preg_replace('/\[url\](.+?)\[\/url\]/''<a href="$1" target="_blank">$1</a>'$string); // [ url ][ /url ] 
    
$string preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/''<a href="$1" target="_blank">$2</a>'$string); // [ url=http:// ][ /url ]
    
$string preg_replace('/\[mail\](.+?)\[\/mail\]/''<a href="mailto:$1">$1</a>'$string); // [ mail ][ /mail ]

    /* Autre */
    
$string preg_replace('/\[left\](.+?)\[\/left\]/''<div align="left">$1<div>'$string); // [ left ][ /left ]
    
$string preg_replace('/\[center\](.+?)\[\/center\]/''<div align="center">$1<div>'$string); // [ center ][ /center ]
    
$string preg_replace('/\[right\](.+?)\[\/right\]/''<div align="right">$1<div>'$string); // [ right ][ /right ]
   
    /* Transforme les retours a la lige en <br> */
    
$string nl2br($string);

    return(
$string);
}
 
?>

Ce code va remplacer la version BBCode créée par l'utilisateur par la version HTML l'hors de l'affichage. Je vais pas entrer en détail pour chaque l'igne parce que le regex est tellement compliqué a comprendre pour les non initier qu'il mériterait un tuto a lui tout seul.

Code PHP :
$string preg_replace('/\[b\](.+?)\[\/b\]/''<b>$1</b>'$string); // [ b ][ /b ] 

Dand la phrase suivante, $sting va recevoir les données converties. preg_replace est la fonction utiliser pour appliquer ce que l'ont appelle le regex. Je vous invite a vous documenter sur le sujet ici. la chaine de caractère entre les guillemets peut sembler bizarre à première vue, mais il est en faite très simple. Je vous ferais un tuto sur le regex un de ses quatre. Le plus important a noté dans la chaine et la partie suivante (.+?) qui replacent la chaine de caractère qu'elle couvre par une variable réutilisable dans la string de remplacement par $1. s’il y'en avait plus d'un les variables serais $2 $3 $4 ext. La chaine suivante est la chaine de remplacement. Noter qu'ici on utilise $1 qui est égal au texte entre [ b ] et [ /b ]. On termine ensuite par la variable qui contient le texte en question.

Pour utiliser la fonction BBCode, il suffit d'appeler la fonction a l'affichage du texte Ex:
Code PHP :
<?php
echo bbcode('Blabla [b]blabla[/b]!');
?>

Veillez cité la source et l'auteur si vous désirer reprendre mon tuto.

Soyez intelligent et restez WhiteHat!
Par CyberSee
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  comment afficher une portion de fichier gruik 12 589 09-05-2014, 22h44
Dernier message: fr0g
  [Html/Javascript] Comment cachées les informations que contienne une variable ? WizOut 22 949 21-10-2012, 14h15
Dernier message: sakiir
  [Html] Pas assez rigoureux ?? Trukrone' 15 828 29-04-2012, 16h13
Dernier message: EpicOut
  [Html/Css] Positionnement de textes P4ND4 6 280 27-02-2012, 21h24
Dernier message: Venoa

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut