|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
REMPLACEMENT BALISES BBCODE
Information sur la source
Description
Cette petite fonction remplace les balises BBCode en des balises html appropriées. Les spécifications sur phpBB.com sont assez floues (casse, pb d'imbrications, etc) donc j'ai fait au mieux. Cette fonction ne vérifie jamais la validité des balises ni leur imbrication, une source récente de malalam le fait je crois. Elle gère toutes les balises dont les spécifications sont sur http://www.phpbb.com/phpBB/faq.php?mode=bbcode , à l'exception des listes ordonnées.
Source
- <?
- function BBtags($t) {
- $t = preg_replace("!\[(url|email)\](.+)\[/(?:url|email)\]!Ui","[$1=$2]$2[/$1]",$t);
- $t = preg_replace("!\[url=([^\]]+)\](.+)\[/url\]!Ui","<a href=\"$1\" target=\"_blank\">$2</a>",$t);
- $t = preg_replace("!\[email=([^\]]+)\](.+)\[/email\]!Ui","<a href=\"mailto:$1\" target=\"_blank\">$2</a>",$t);
- $t = preg_replace("!\[img\](.+)\[/img\]!Ui","<img src=\"$1\" alt=\"\" border=\"0\">",$t);
- $t = preg_replace("!\[(/?[biu])\]!mi","<$1>",$t);
- $t = preg_replace("!\[color=([^\]]+)\]!mi","<font style=\"color: $1;\">",$t);
- $t = preg_replace("!\[size=([^\]]+)\]!mi","<font style=\"font-size: $1px;\">",$t);
- $t = preg_replace("!\[/(?:color|size)\]!i","</font>",$t);
- //$q1 et $c1 sont à personnaliser...
- $q1 = "<table align=center border=0 cellpadding=3 cellspacing=1 width=90%><tbody><tr><td><span style=\"font-size : 11px\"><b>";
- $q2 = "</b></span></td></tr><tr><td style=\"font-family: Verdana, sans-serif; font-size: 11px; color: #444444; background-color: #FAFAFA; border: #D1D7DC; border-style: solid; border-width: 1px\">";
- $q3 = "</td></tr></tbody></table>";
- $t = preg_replace("!\[quote=([^\]]+)\](.+)\[/quote\]!Umi","$q1 $1 a écrit :$q2 $2 $q3",$t);
- $t = preg_replace("!\[quote\](.+)\[/quote\]!Umi","$q1 Citation : $q2 $1 $q3",$t);
- $c1 = "<table align=center border=0 cellpadding=3 cellspacing=1 width=90%><tbody><tr><td style=\"font-family: TimesNewRoman, sans-serif; font-size: 11px; color: #444444; background-color: #FAFAFA; border: #D1D7DC; border-style: solid; border-width: 1px\">";
- $t = preg_replace("!\[code\](.+)\[/code\]!Umi","$c1 $1 $q3",$t);
- $t = preg_replace("!\[list\](.+)\[/list\]!Umi","<ul> $1 </ul>",$t);
- $t = preg_replace("!\[\*\](.+)(?=(\[\*\]|</ul>))!Umi","<li>$1</li>",$t);
- return $t;
- }
- ?>
<?
function BBtags($t) {
$t = preg_replace("!\[(url|email)\](.+)\[/(?:url|email)\]!Ui","[$1=$2]$2[/$1]",$t);
$t = preg_replace("!\[url=([^\]]+)\](.+)\[/url\]!Ui","<a href=\"$1\" target=\"_blank\">$2</a>",$t);
$t = preg_replace("!\[email=([^\]]+)\](.+)\[/email\]!Ui","<a href=\"mailto:$1\" target=\"_blank\">$2</a>",$t);
$t = preg_replace("!\[img\](.+)\[/img\]!Ui","<img src=\"$1\" alt=\"\" border=\"0\">",$t);
$t = preg_replace("!\[(/?[biu])\]!mi","<$1>",$t);
$t = preg_replace("!\[color=([^\]]+)\]!mi","<font style=\"color: $1;\">",$t);
$t = preg_replace("!\[size=([^\]]+)\]!mi","<font style=\"font-size: $1px;\">",$t);
$t = preg_replace("!\[/(?:color|size)\]!i","</font>",$t);
//$q1 et $c1 sont à personnaliser...
$q1 = "<table align=center border=0 cellpadding=3 cellspacing=1 width=90%><tbody><tr><td><span style=\"font-size : 11px\"><b>";
$q2 = "</b></span></td></tr><tr><td style=\"font-family: Verdana, sans-serif; font-size: 11px; color: #444444; background-color: #FAFAFA; border: #D1D7DC; border-style: solid; border-width: 1px\">";
$q3 = "</td></tr></tbody></table>";
$t = preg_replace("!\[quote=([^\]]+)\](.+)\[/quote\]!Umi","$q1 $1 a écrit :$q2 $2 $q3",$t);
$t = preg_replace("!\[quote\](.+)\[/quote\]!Umi","$q1 Citation : $q2 $1 $q3",$t);
$c1 = "<table align=center border=0 cellpadding=3 cellspacing=1 width=90%><tbody><tr><td style=\"font-family: TimesNewRoman, sans-serif; font-size: 11px; color: #444444; background-color: #FAFAFA; border: #D1D7DC; border-style: solid; border-width: 1px\">";
$t = preg_replace("!\[code\](.+)\[/code\]!Umi","$c1 $1 $q3",$t);
$t = preg_replace("!\[list\](.+)\[/list\]!Umi","<ul> $1 </ul>",$t);
$t = preg_replace("!\[\*\](.+)(?=(\[\*\]|</ul>))!Umi","<li>$1</li>",$t);
return $t;
}
?>
Conclusion
Ce code peut paraitre banal, mais j'en ai cherché ici je trouvais que sur le forum, et encore certains trucs m'ont pas paru top dans la source concernée (plutôt bizarre niveau regex, et ne gérant pas [list] et [email]) A venir, listes ordonnées et coloration syntaxique dans la balise code. Dans le zip se trouvent un fichier .php complet qui permet de tester, ainsi qu'un .txt bidon et bariollé pour voir si tout fonctionne bien. Soyez indulgents, j'ai commencé le php ya 3 jours lol :p Tout commentaire est néanmoins le bienvenu =)
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
|