Soyez le premier à donner votre avis sur cette source.
Vue 6 606 fois - Téléchargée 270 fois
<? // Fonction qui transforme un texte avec du BCode en texte avec du code HTML function compile($corps) { // Permet de gérer les espaces avant un caractère, en debut de texte // cette fonction va chercher le nombre d'espace et les remplacerer par ' autant de fois qu'il le faut. $corps=preg_replace('/^( +)(\S{1})/e', "str_repeat(' ',strlen('\\1')).'\\2'", $corps); // De même, mais pour chaque debut de phrase en debut de phrase $corps=preg_replace('/\n(\ *)(\S?)/e', "'<br>'.str_repeat(' ',strlen('\\1')).'\\2'", $corps); // Permet de remplacer les balises de gras, par l'équivalent en HTML : [b]texte/b $corps=str_replace('[b]', '<b>', $corps); $corps=str_replace('/b', '</b>', $corps); // De même pour l'italique : [i]texte/i $corps=str_replace('[i]', '<i>', $corps); $corps=str_replace('/i', '</i>', $corps); // De même pour le soulignement : [s]texte/s $corps=str_replace('[s]', '<u>', $corps); $corps=str_replace('/s', '</u>', $corps); // Permet de remplacer les balises de citation par une mise en forme adéquate : [quote]texte/quote $corps=str_replace('[quote]', '<br><i>Citation<br> ', $corps); $corps=str_replace('/quote', '<br>/Citation</i><br>', $corps); // Permet de remplacer les balises de couleur par du code HTML approprié : [color=COULEUR]texte/color $corps=preg_replace('/\[color=(\w+)\]/', '<font color="\\1">', $corps); $corps=str_replace('/color', '</font>', $corps); // Permet de remplacer la balise image : [img]URL image/img $corps=preg_replace('/\[img\](.+)\[\/img\]/', '<img src="\\1" align="center">', $corps); // permet de remplacer la balise URL par un lien HTML // 2 methodes differentes : [url]URL/url ou [url=URL]Texte[url] $corps=preg_replace('/\[url\](http:\/\/|)(.+)\[\/url\]/', '<a href="http://\\2" target="_blank" class="corps">\\2</a>', $corps); $corps=preg_replace('/\[url=(http:\/\/|)(.+)\](.+)\[\/url\]/', '<a href="http://\\2" target="_blank" class="corps">\\3</a>', $corps); //permet de remplacer le code d'un smilie par l'image correspondante $corps=str_replace(':D', '<img width="20" height="20" src="smilies/happy.gif">', $corps); $corps=str_replace(':)', '<img width="20" height="20" src="smilies/smile.gif">', $corps); $corps=str_replace(':p', '<img width="20" height="20" src="smilies/notify.gif">', $corps); $corps=str_replace(';)', '<img width="20" height="20" src="smilies/winkin.gif">', $corps); $corps=str_replace(':lol:', '<img width="20" height="20" src="smilies/lol.gif">', $corps); $corps=str_replace('$)', '<img width="20" height="20" src="smilies/cool.gif">', $corps); $corps=str_replace('8)', '<img width="20" height="20" src="smilies/blink.gif">', $corps); $corps=str_replace(':|', '<img width="20" height="20" src="smilies/hmm.gif">', $corps); $corps=str_replace(':?', '<img width="20" height="20" src="smilies/whatsthat.gif">', $corps); $corps=str_replace(':(', '<img width="20" height="20" src="smilies/mad.gif">', $corps); $corps=str_replace(':[', '<img width="20" height="20" src="smilies/bad.gif">', $corps); return $corps; } // Fonction qui transforme un texte avec du code HTML en texte avec du BCode a l'instar de la première fonction function decompile($corps) { $corps=preg_replace('/^( +)(\S{1})/e', "str_repeat(' ',(strlen('\\1')/6)).'\\2'", $corps); $corps=preg_replace('/<br>( *)(\S?)/e', "str_repeat(' ',(strlen('\\1')/6)).'\\2'", $corps); $corps=str_replace('<br>', '', $corps); $corps=str_replace('<br><i>Citation<br> ', '[quote]', $corps); $corps=str_replace('<br>/Citation</i><br>', '/quote', $corps); $corps=str_replace('<b>', '[b]', $corps); $corps=str_replace('</b>', '/b', $corps); $corps=str_replace('<i>', '[i]', $corps); $corps=str_replace('</i>', '/i', $corps); $corps=str_replace('<u>', '[s]', $corps); $corps=str_replace('</u>', '/s', $corps); $corps=preg_replace('/<font color="(\w+)">/', '[color=\\1]', $corps); $corps=str_replace('</font>', '/color', $corps); $corps=preg_replace('/<img src="(.+)" align="center">/', '[img]\\1/img', $corps); $corps=preg_replace('/<a href="http:\/\/(.+)" target="_blank" class="corps">(.+)<\/a>/', '[url=http://\\1]\\2/url', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/happy.gif">', ':D', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/smile.gif">', ':)', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/notify.gif">', ':p', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/winkin.gif">', ';)', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/lol.gif">', ':lol:', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/cool.gif">', '$)', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/blink.gif">', '8)', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/hmm.gif">', ':|', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/whatsthat.gif">', ':?', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/mad.gif">', ':(', $corps); $corps=str_replace('<img width="20" height="20" src="smilies/bad.gif">', ':[', $corps); return $corps; } // \w : [0-9a-zA-z] // . : n'impporte quels caracteres sauf \n // + : 1 ou plusieurs fois // * : 0 ou plusieurs fois // \ :echape // \S : n'impporte quels caracteres sauf \n, \t, \r // {1} : un et un seul ?>
Pour apz je ne vois pas.
Pour spiderAlpha voila un autre bout de code qui permet la transformation et qui devrai fonctioner :
$corp = preg_replace("/\[url\](.*?)\[\/url\]/si","\\1",$corp);
$corp = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si","\\2",$corp);
++
je trouve ton code exellent, mais comme dit plus haut, il y a un probléme avec les URL lorsqu'elles sont multiples.
Le code donné par montoya pour le corriger ne fonctionne pas, il retourne les erreurs suivantes :
Unknown modifier 'r' ......
Quel est donc le code à mettre pour supporter les deux types d'URL dans une même zone de texte ?
Merci
Quand on selectionne un texte dans le textearea, pour lui appliquer les balises BBCode tels que : [bold]texte/blod ou [italic]texte/italic ou , il y a une fonction qui fasse cela !
alors comment elle doir etre ?
merci.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.