Simpel BB-Code Script

ICTscripters maakt gebruik van cookies. Door het gebruiken en browsen naar onze site gaat je automatisch akkoord met het gebruik van cookies. Klik hier voor meer informatie

  • 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. ?>
    Laat alles zien
    Bestanden

    152 keer bekeken

Reacties 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.