UBB-Codes - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Juri (43 Beiträge) am Samstag, 8.Dezember.2001, 18:01.
    UBB-Codes

      Vielen Forumern sind UBB-Codes geläufig.

      Ich bräuchte nun ein convert_ubb(), so ähnlich wie die anderen convert_...()-Funktionen, die mir einen UBB-Code-behafteten String in HTML übersetzt.

      Gibt es so etwas?
      Hat jemand schon so etwas geschrieben?


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Juri (43 Beiträge) am Samstag, 8.Dezember.2001, 18:01.
    UBB-Codes

      Vielen Forumern sind UBB-Codes geläufig.

      Ich bräuchte nun ein convert_ubb(), so ähnlich wie die anderen convert_...()-Funktionen, die mir einen UBB-Code-behafteten String in HTML übersetzt.

      Gibt es so etwas?
      Hat jemand schon so etwas geschrieben?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 8.Dezember.2001, 21:59.
    Re: UBB-Codes -??

      Ich kenn das garnich - UBB-Codes? Was ist das? Wofür?

     Antworten

    Beitrag von Juri (43 Beiträge) am Samstag, 8.Dezember.2001, 23:51.
    Re: UBB-Codes -??

      Sorry, wußte nicht, das das einige nicht kennen würden.

      Also, UBBCode(TM) ist eine Erfindung der Ultimate Bulletin Boards um in Postings HTML-ähnliche Befehle zu verwenden, aber eben keinen HTML-Code zuzulassen.

      Um zum Beispiel Text fett darzustellen, wird derselbige zwischen die Zeichenfolge [b] [/b] hineingeschriben.

      All jene, die sich in Foren bewegen, deren Software von UBB sind, denen sollte natürlich UBBCode geläufig sein.

      Ich hab' natürlich keine Ahnung, wie das mit dem TM aussieht? Vielleicht verhindert dies sogar eine convert_ubb()-Funktion.

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Sonntag, 9.Dezember.2001, 00:08.
    Re: UBB-Codes -??

      Hi!

      Folgendes ist wahrscheinlich nicht gerade effizient (und Copyright war mir auch ziemlich egal ;) ), aber es tut, was es soll:

      <perl>
      sub convert_ubb {
       $temp=$_[0];
       if ($temp=~ m/\[/) {
        $Neu="X";
        while ($Neu ne "") {
         $Neu="";
         $SStart = index($temp,"\[");
         $SEnde = index($temp,"\]");
         $STemp = substr($temp,$SStart+1,$SEnde-($SStart+1));
         if (index($STemp,"=") > 0) {
          $STag = uc(substr($STemp,0,index($STemp,"=")));
          $SParam = substr($STemp,index($STemp,"=")+1);
         } else {
          $STag=uc($STemp);
         }
         $ETemp=substr($temp,$SEnde+1);
         $EStart = index($ETemp,"\[/")+$SEnde+1;
         $EEnde = index($ETemp,"\]")+$SEnde+1;
         $ETag = uc(substr($temp,$EStart+1,$EEnde-($EStart+1)));
         $Inc = substr($temp,$SEnde+1,$EStart-($SEnde+1));
         $Alt = substr($temp,$SStart,$EEnde-($SStart-1));
         $Alt=~s/\[/\\\[/g;
         $Alt=~s/\]/\\]/g;
         if ($STag eq "URL") {
          if ($SParam eq "") {
           $SParam=$Inc;
           if (index($SParam,"://") < 0) {
            $SParam="http://".$SParam;
           }
          }
          $Neu="<a href=\"$SParam\">$Inc</a>";
         } elsif ($STag eq "EMAIL") {
          $Neu="<a href=\"mailto:$Inc\">$Inc</a>";
         } elsif ($STag eq "B") {
          $Neu="<b>$Inc</b>";
         } elsif ($STag eq "I") {
          $Neu="<i>$Inc</i>";
         } elsif ($STag eq "IMG") {
          $Neu="<img src=\"$Inc\">";
         } elsif ($STag eq "QUOTE") {
          $Neu="<blockquote>$Inc</blockquote>";
         } elsif ($STag eq "CODE") {
          $Neu="<pre>$Inc</pre>";
         }
         if ($Neu eq "") {
          last;
         }
         $temp=~s/$Alt/$Neu/;
        }
       }
       return $temp;
      }
      </perl>
      

      Oben in der Seite eingebunden kann z.B. über
      <perl>
       out convert_ubb("[b]Test[/b]");
      </perl>
      
      aufgerufen werden.

      Stefan

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Sonntag, 9.Dezember.2001, 16:59.
    Re: UBB-Codes -??

      Hab doch noch mal dran rumgeschraubt: Die letzte "Version" kam nicht mit verschachtelten Tags klar, diese schon:
      <perl>
      sub convert_ubb {
       $temp=$_[0];
       out "Start: $temp<br>";
       if ($temp=~ m/\[/) {
        $Neu="X";
        while ($Neu ne $Alt) {
         $SStart = index($temp,"\[");
         $SEnde = index($temp,"\]");
         if ($SEnde == -1) {
          last
         }
         $STemp = substr($temp,$SStart+1,$SEnde-($SStart+1));
         if (index($STemp,"=") > 0) {
          $STag = uc(substr($STemp,0,index($STemp,"=")));
          $SParam = substr($STemp,index($STemp,"=")+1);
         } else {
          $STag=uc($STemp);
         }
         $P=$SEnde+1;
         $TL=length($STag)+3;
         $L=length($temp);
         while ((uc(substr($temp,$P,$TL)) ne "[/".$STag."]") & ($P < $L)) { # 
          $P++;
         }
         if ($P == $L+1) {
          last
         }
         $Inc = substr($temp,$SEnde+1,$P-$SEnde-1);
         $Alt = substr($temp,$SStart,($P+$TL)-($SStart));
         $Alt=~s/\[/\\\[/g;
         $Alt=~s/\]/\\]/g;
         $Neu = $Alt;
         if ($STag eq "URL") {
          if ($SParam eq "") {
           $SParam=$Inc;
           if (index($SParam,"://") < 0) {
            $SParam="http://".$SParam;
           }
          }
          $Neu="<a href=\"$SParam\">$Inc</a>";
         } elsif ($STag eq "EMAIL") {
          $Neu="<a href=\"mailto:$Inc\">$Inc</a>";
         } elsif ($STag eq "B") {
          $Neu="<b>$Inc</b>";
         } elsif ($STag eq "I") {
          $Neu="<i>$Inc</i>";
         } elsif ($STag eq "IMG") {
          $Neu="<img src=\"$Inc\">";
         } elsif ($STag eq "QUOTE") {
          $Neu="<blockquote>$Inc</blockquote>";
         } elsif ($STag eq "CODE") {
          $Neu="<pre>$Inc</pre>";
         }
         $temp=~s/$Alt/$Neu/;
        }
       }
       return $temp;
      }
      </perl>
      

      Stefan

     Antworten

    Beitrag von Juri (43 Beiträge) am Sonntag, 9.Dezember.2001, 17:30.
    Re: UBB-Codes -??

      Booaaah, das ist ja toll.
      Habs aber noch nicht ganz verstanden.

      Mittlerweile hab ich mich selber an dem Problem versucht.

      Also [b], [i] und [u] sind recht leicht mit:

       $_[0] =~ s/\[(\/?[biu])\]/<$1>/gi;
      

      loszuwerden.
      Beim Versuch, den [url] zu erledigen, bin ich an die Grenzen meines Verständnisses regulärer Ausdrücke gestoßen:

       $_[0] =~ s/\[url\](.*)\[\/url\]/<h1>$1<\/h1>/gi;
      

      Dabei ist leider das .* nicht die kürzeste der Möglichkeiten, die er findet, sondern in dem .* steckt ebenfalls ein [/url] drinnen!

      Juri

     Antworten

    Beitrag von Stefan Krupop (311 Beiträge) am Sonntag, 9.Dezember.2001, 17:38.
    Re: UBB-Codes -??

      Ich muß gestehen, dass ich von RegEx's kaum ne Ahnung habe. Aber als ich gesehen habe, dass es für [url] auch Parameter gibt, habe ich mich endgültig von den RegExen verabschiedet. Also wenn's darum geht frag lieber Sander oder CB.

      Stefan

     Antworten

    Beitrag von Juri (43 Beiträge) am Sonntag, 9.Dezember.2001, 17:42.
    Re: UBB-Codes -??

      Danke für den Hinweis.

      Das vorherige Problem konnte ich auch schon lösen:

       $_[0] =~ s/\[url\](.*?)\[\/url\]/<h1>$1<\/h1>/gi;
      

      Dabei habe ich bei www.perldoc.com den entsprechenden Hinweis gefunden

      www.perldoc.com/perl5.6.1/pod/perlre.html#Backtracking

      Entscheidend ist hier das ? hinter dem .*

      Trotzdem Danke für Deine Bemühungen, denn mir sind noch einige Sachen unklar gewesen, und da hast Du mir mit Deinem Code auf die Sprünge geholfen!

     Antworten

    Beitrag von Juri (43 Beiträge) am Sonntag, 9.Dezember.2001, 17:32.
    Re: UBB-Codes -??

      Das Obere mit den <h1> war nur, um es beim Test sichtbar zu machen.

     Antworten


     
 Liste der Einträge von 53250 bis 53400:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.25s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!