Simpel BB-Code Script

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Hierbij een simpel BB Code script.
    Let op de Smilies zitten er niet bij! Dus wijzig zelf je img path!

    Verwijder ook even bij de [~code] en [~/code] het ~ tekentje. (dit is ivm het insluiten van de code op ictscripters)

    Veel succes er mee!

    PHP Source Code

    1. <?php
    2. function bbc2html($data) {
    3. $data=str_replace(":)","<img src=emoticons/smile.gif />",$data);
    4. $data=str_replace(":d","<img src=emoticons/biggrin.gif />",$data);
    5. $data=str_replace(":D","<img src=emoticons/biggrin.gif />",$data);
    6. $data=str_replace(":->:","<img src=emoticons/arrow.gif />",$data);
    7. $data=str_replace(":arrow:","<img src=emoticons/arrow.gif />",$data);
    8. $data=str_replace(":s","<img src=emoticons/confused.gif />",$data);
    9. $data=str_replace(":S","<img src=emoticons/confused.gif />",$data);
    10. $data=str_replace("8)","<img src=emoticons/cool.gif />",$data);
    11. $data=str_replace("8-)","<img src=emoticons/cool.gif />",$data);
    12. $data=str_replace(":cool:","<img src=emoticons/cool.gif />",$data);
    13. $data=str_replace(":'(","<img src=emoticons/cry.gif />",$data);
    14. $data=str_replace("8|","<img src=emoticons/eek.gif />",$data);
    15. $data=str_replace("(6)","<img src=emoticons/evil.gif />",$data);
    16. $data=str_replace(":evil:","<img src=emoticons/evil.gif />",$data);
    17. $data=str_replace(":!:","<img src=emoticons/idea.gif />",$data);
    18. $data=str_replace(":lol:","<img src=emoticons/lol.gif />",$data);
    19. $data=str_replace(":@","<img src=emoticons/mad.gif />",$data);
    20. $data=str_replace(":x","<img src=emoticons/mad.gif />",$data);
    21. $data=str_replace(":X","<img src=emoticons/mad.gif />",$data);
    22. $data=str_replace(":mad:","<img src=emoticons/mad.gif />",$data);
    23. $data=str_replace(":mrgreen:","<img src=emoticons/mrgreen.gif />",$data);
    24. $data=str_replace(":|","<img src=emoticons/neutral.gif />",$data);
    25. $data=str_replace(":?:","<img src=emoticons/question.gif />",$data);
    26. $data=str_replace(":$","<img src=emoticons/redface.gif />",$data);
    27. $data=str_replace(":oops:","<img src=emoticons/redface.gif />",$data);
    28. $data=str_replace(":redface:","<img src=emoticons/redface.gif />",$data);
    29. $data=str_replace(":rolleyes:","<img src=emoticons/rolleyes.gif />",$data);
    30. $data=str_replace(":roll:","<img src=emoticons/rolleyes.gif />",$data);
    31. $data=str_replace(":(","<img src=emoticons/sad.gif",$data);
    32. $data=str_replace(":-(","<img src=emoticons/sad.gif />",$data);
    33. $data=str_replace(":-)","<img src=emoticons/smile.gif />",$data);
    34. $data=str_replace(":o","<img src=emoticons/surprised.gif />",$data);
    35. $data=str_replace(":O","<img src=emoticons/surprised.gif />",$data);
    36. $data=str_replace(":P","<img src=emoticons/tongue.gif />",$data);
    37. $data=str_replace(":p","<img src=emoticons/tongue.gif />",$data);
    38. $data=str_replace(":twisted:","<img src=emoticons/twisted.gif />",$data);
    39. $data=str_replace(";)","<img src=emoticons/wink.gif />",$data);
    40. $data=str_replace(";-)","<img src=emoticons/wink.gif />",$data);
    41. $data=str_replace("[s]","<s>",$data);
    42. $data=str_replace("[/s]","</s>",$data);
    43. $data=str_replace("[b]","<b>",$data);
    44. $data=str_replace("[/b]","</b>",$data);
    45. $data=str_replace("[i]","<i>",$data);
    46. $data=str_replace("[/i]","</i>",$data);
    47. $data=str_replace("[u]","<u>",$data);
    48. $data=str_replace("[/u]","</u>",$data);
    49. $data=str_replace("[center]","<center>",$data);
    50. $data=str_replace("[/center]","</center>",$data);
    51. $data=str_replace("n","<br />",$data);
    52. $data=str_replace("1/2","½",$data);
    53. $data=str_replace("3/4","¾",$data);
    54. $data=str_replace("1/4","¼",$data);
    55. $data=str_replace("[sup]","<sup>",$data);
    56. $data=str_replace("[/sup]","</sup>",$data);
    57. $date=str_replace("[list]","<ul>",$data);
    58. $date=str_replace("[*]","<li>",$data);
    59. $data=str_replace("[/list]","</ul>",$data);
    60. $data=str_replace("[quote]","<center><table width="95%" cellspacing="0" cellpadding="2" background="#ffffff" color="#000000" border="1" bordercolor="#808080" style="font: 10px verdana; background-color: #000000; border-style: dashed;"><tr><td><b>Quote...</b></td></tr><tr><td>",$data);
    61. $data=str_replace("[/quote]","</td></tr></table></center>",$data);
    62. $data=str_replace("[~code]","<code>",$data);
    63. $data=str_replace("[~/code]","</code>",$data);
    64. $data=str_replace("[slide]","<marquee behavior="slide">",$data);
    65. $data=str_replace("[/slide]","</slide>",$data);
    66. $data=str_replace("[hr]","<hr>",$data);
    67. $data=str_replace("[hr=","<hr color=",$data);
    68. $data=str_replace("[+]","•",$data);
    69. $data=str_replace("[l]","<",$data);
    70. $data=str_replace("[r]",">",$data);
    71. $data=str_replace("file://","",$data);
    72. $data=str_replace("ftp://","",$data);
    73. return $data;
    74. }
    75. ?>
    Display All
    Files

    360 times viewed

Comments 4

  • Ferhat.Remory -

    Waarom niet gewoon jbbcode.com/ gebruiken?

    • FangorN -

      Hm, ziet er aan de buitenkant wel okay uit, en lijkt ook nog onderhouden te worden. Zat ff te kijken hoe die Tokenizer werkt, en daar worden stringfuncties als strlen() en substr() gebruikt. Mogelijk kom je dan in de knoei met multibyte karakters.

  • AarClay -

    Leuk voor beginners, maar het is geen 'hufterproof' parser. Je vervangt nu enkel dingen zonder naar de samenstellingen van de tags te kijken. Je kan met UBB-code nog steeds een f*ck-up creëren in de opmaak.

    Verder een <table> voor een quote? Well, ik dacht dat we daarvoor *blockquote* hadden.

  • FangorN -

    Vaak is het de bedoeling van dit soort code om een gebruiker een soort van subset van HTML-functionaliteit te geven. Het is dan wel zaak dat alle overige HTML wordt geneutraliseerd. Hierin schiet bovenstaande functionaliteit misschien wat tekort: het oorspronkelijke bericht wordt niet ontdaan van enige HTML (met een functie als htmlspecialchars() ofzo). Ook zoekt deze code niet naar UBB-code-paren, de meeste openingstags hebben ook een bijbehorende sluitingstag. Mogelijk is het handiger om hier reguliere expressies voor te gebruiken, of als je het heel netjes wilt doen bouw je een parser. En dan zijn er nog onderdelen die echt apart behandeld zouden moeten worden, dus gebieden waarin andere regels van toepassing zijn zoals het ~code-blok. Dit soort blokken zouden uit de UBB-context gehaald moeten worden, want je wilt waarschijnlijk niet dat je tekst binnen zo'n codeblok dik gaat drukken of dat daar tekstpassages omgezet worden naar smilies ofzo. Dan over de smilies: waar zijn de afbeeldingen hiervoor, of moeten wij die zelf ergens vandaan halen? Al met al is de bovenstaande code iets te simplistisch voor wat het zou moeten doen naar mijn mening. Daarnaast, str_replace() accepteert ook arrays geloof ik. Dus je hoeft niet elke omzetting afzonderlijk te doen, maar dit kan in één keer.