BBCode [url] elegantere Möglichkeit?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • BBCode [url] elegantere Möglichkeit?

    Hallo
    Ich habe für meine Seite eine Funktion gschrieben, die mir den BBCode umwandelt.
    Ich habe es auch geschafft, bei [ url ] ein http:// zu ergänzen, falls dies nicht vohanden ist, allerdings erscheint mir das Ganze doch recht holprig.
    Gibt es eine elegantere Möglichkeit, die Sache zu verwirklichen?

    Quellcode

    1. function bbcode($str) {
    2. $str = preg_replace("!\[b\](.*)\[/b\]!isU","<b>$1</b>",$str);
    3. $str = preg_replace("!\[i\](.*)\[/i\]!isU","<i>$1</i>",$str);
    4. $str = preg_replace("!\[u\](.*)\[/u\]!isU","<u>$1</u>",$str);
    5. $str = preg_replace("!\[c\](.*)\[/c\]!isU","<center>$1</center>",$str);
    6. $str = preg_replace("!\[h1\](.*)\[/h1\]!isU","<h1>$1</h1>",$str);
    7. $str = preg_replace("!\[h2\](.*)\[/h2\]!isU","<h2>$1</h2>",$str);
    8. $str = preg_replace("!\[h3\](.*)\[/h3\]!isU","<h3>$1</h3>",$str);
    9. $str = preg_replace("!\[img\](.*)\[/img\]!isU","<img src=\"tmp/img_other/$1\" border=\"0\" />",$str);
    10. $str = preg_replace("!\[a=(.*)\](.*)\[/a\]!isU","<a name=\"$1\">$2</a>",$str);
    11. $str = preg_replace("!\[url\]http://(.*)\[/url\]!isU","<a href=\"http://$1\">$1</a>",$str);
    12. $str = preg_replace("!\[url\](.*)\[/url\]!isU","<a href=\"http://$1\">$1</a>",$str);
    13. $str = preg_replace("!\[url=http://(.*)\](.*)\[/url\]!isU","<a href=\"http://$1\">$2</a>",$str);
    14. $str = preg_replace("!\[url=(.*)\](.*)\[/url\]!isU","<a href=\"http://$1\">$2</a>",$str);
    15. return $str;
    16. }
    Alles anzeigen


    MfG
    venum

    PS: Falls ihr euch wundert, warum ich auch Anker bzw. Überschriftendefinierungen drinn hab, die Funktion ist für die Admins :)
  • Quellcode

    1. function bbcode($str) {
    2. foreach(array('b', 'i', 'u', 'c', 'h1', 'h2', 'h3', 'img', 'url') as $k => $v) {
    3. $str = preg_replace("!\[".$v."\](.*)\[/".$v."\]!isU","$1",$str);
    4. }
    5. $str = preg_replace("!\[a=(.*)\](.*)\[/a\]!isU","$2",$str);
    6. $str = preg_replace("!\[url\]http://(.*)\[/url\]!isU","$1",$str);
    7. $str = preg_replace("!\[url=http://(.*)\](.*)\[/url\]!isU","$2",$str);
    8. $str = preg_replace("!\[url=(.*)\](.*)\[/url\]!isU","$2",$str);
    9. return $str;
    10. }