[Php] Comment transformer le BBCode en HTML
|
17-06-2011, 04h23
(Modification du message : 19-11-2012, 19h18 par InstinctHack.)
Message : #1
|
|
CyberSee
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 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 Veillez cité la source et l'auteur si vous désirer reprendre mon tuto. Soyez intelligent et restez WhiteHat! Par CyberSee |
|
« Sujet précédent | Sujet suivant »
|
Messages dans ce sujet |
[Php] Comment transformer le BBCode en HTML - par CyberSee - 17-06-2011, 04h23
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
comment afficher une portion de fichier | gruik | 12 | 512 |
09-05-2014, 22h44 Dernier message: fr0g |
|
[Html/Javascript] Comment cachées les informations que contienne une variable ? | WizOut | 22 | 1,002 |
21-10-2012, 14h15 Dernier message: sakiir |
|
[Html] Pas assez rigoureux ?? | Trukrone' | 15 | 815 |
29-04-2012, 16h13 Dernier message: EpicOut |
|
[Html/Css] Positionnement de textes | P4ND4 | 6 | 336 |
27-02-2012, 21h24 Dernier message: Venoa |
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)