tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
247
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Funjoy
    Funjoy Funjoy ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Berlin
    Beiträge
    118
    Hallo,

    Ich bastle mir gerade ne Klasse welche UBB Codes in Html Umwandeln kann und es soll möglich sein eigene Codblöcke wie z.B. [-HTML-] selber mit ein systaxhighlight auszustatten dafür habe ich mir schon was ausgedacht was wenn ich den direkten name eingebe funktioniert also so:

    PHP-Code:
    <?php 
    ...
    $codestring preg_replace("!<a (.+)>(.+)<\/a>!Ui","<font color=\"#009900\">&lt;a $1&gt;</font>$2<font color=\"#009900\">&lt;/a&gt;</font>",$str);
    ...
    ?>
    da würde er mir dann ein Link grün darstellen das Funktioniert auch gut aber da ich das ja Dynamisch haben will habe ich ein array geschrieben mit den Keywords .

    so wenn ich es jetzt Dynamisch Probiere schaut das ganze so aus:
    PHP-Code:
    <?php 
    ...
    $codestring preg_replace("!<".$ArrayKeywords[0]." (.+)>(.+)<\/".$ArrayKeywords[0].">!Ui","<font color=\"".$ArrayKeywords[3]."\">&lt;".$ArrayKeywords[0]." $1&gt;</font>$2<font color=\"".$ArrayKeywords[3]."\">&lt;/".$ArrayKeywords[0]."&gt;</font>",$str);
    ...
    ?>
    aber da wird dann der Link halt nicht umgewandelt und grün dargestellt.

    wer da noch nicht ganz durchblickt und mehr Code brauch hier bitt

    PHP-Code:
    <?php 
    class UBBManager
      
    {
        var 
    $CodeActivate TRUE;            #> Bestimmen ob Code Blöcke angezeigt werden dürfen.
        
        
    var $Imageactivate TRUE;            #> Bestimmen ob Bilder bzw. Grafiken angezeigt werden dürfen.
        
    var $ImageMaxWidth 600;            #> Maximale Breite eines Bildes.
        
    var $ImageMaxHeight 600;            #> Maximale Höhe eines Bildes.
        
        
    var $AutomaticUrlDecode TRUE;        #> Hyperlinks Automatisch Linken.
        
        
        
    var $CodeForm = array(=> "<>",=> "\$",=> "f()",=> "c()");
        
    #--> Html Schlüsselwörter die farblich hervorgehoben werden sollen. (Achtung veränderung der Keywords kann zu Fehlern führen.)
        
    var $HtmlKeywords = array("a:2:1:#009900","script:2:1:#990000","form:2:1:#FF9900","textarea:2:1:#FF9900","input:1:1:#FF9900","table:2:1:#009999","th:2:1:#009999","tr:2:1:#009999","td:2:1:#009999","tbody:2:1:#009999","tfoot:2:1:#009999","&:1:0:<b>","*:1:1:#000099");

        
        
        function 
    CodeBlockDefine($str,$keywords)
          {
            
            for(
    $x=0;$x<=count($keywords);$x++)
              {
                
    $ArrayKeywords explode(":",$keywords[$x]);
                if(
    $this->CodeForm[$ArrayKeywords[2]] == "<>")
                  {
                    if(
    $ArrayKeywords[0] != "*")
                      {
                        
    #$codestring = preg_replace("!<a (.+)>(.+)<\/a>!Ui","<font color=\"#009900\">&lt;a $1&gt;</font>$2<font color=\"#009900\">&lt;/a&gt;</font>",$str);
                        
    $codestring preg_replace("!<".$ArrayKeywords[0]." (.+)>(.+)<\/".$ArrayKeywords[0].">!Ui","<font color=\"".$ArrayKeywords[3]."\">&lt;".$ArrayKeywords[0]." $1&gt;</font>$2<font color=\"".$ArrayKeywords[3]."\">&lt;/".$ArrayKeywords[0]."&gt;</font>",$str);  
                    }  
                }
            }
            
            return 
    $codestring
        }
    }
    ?>
    Hoffe einer kann helfen

    MfG Funjoy
     
    Ich bin ein KLEINER Webmaster werde aber immer GRÖßER

  2. #2
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Wie instanzierst Du ein Objekt aus der Klasse und wie benutzt Du dieses? Vielleicht liegt dort der Hase begraben. Des Weiteren ist mir aufgefallen, dass Du die Variablen im regulären Ausdruck mittels preg_quote() quoten solltest.
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  3. #3
    Avatar von Funjoy
    Funjoy Funjoy ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Berlin
    Beiträge
    118
    Hallo,

    Also so benutze ich die Klasse ich denke mal darann liegt es nicht oder?

    PHP-Code:
    <?php
    include("UBBManager.php");
    $string ="<a href=\"#\">Link</a>";

    $ubb = new UBBManager();
    echo 
    $ubb->CodeBlockDefine($string,$ubb->HtmlKeywords);
    ?>
    preg_quote() werde ich mit einbauen aber darnn kann es auch nicht liegen da keine Umlaute in der String ist.

    MfG Funjoy
     
    Ich bin ein KLEINER Webmaster werde aber immer GRÖßER

Ähnliche Themen

  1. regulärer Ausdruck
    Von Gardiner im Forum PHP
    Antworten: 9
    Letzter Beitrag: 19.08.10, 22:03
  2. Regulärer Ausdruck
    Von messmar im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 25.01.08, 13:36
  3. Regulärer Ausdruck
    Von kesnw im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 13.07.05, 11:41
  4. Regulärer Ausdruck
    Von Benzol im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 28.01.05, 11:58
  5. Regulärer Ausdruck
    Von tittli im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.01.05, 15:52