Parser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Parser

    Bitte erst dies kurz überfliegen.

    Habe für das Problem jetzt folgenden Ansatz:

    in $quelltext steht ein Text wie dieser:
    "Bla bla [BILD:apfel] und so weiter [BILD:birne] das wars"

    Ich möchte also [BILD:name] erstetzen durch ein image-Tag und vorher noch ein kleines JavaScript erzeugen.

    ich würde das etwa folgendermaßen machen:

    PHP-Code:
    $max substr_count($quelltext"[BILD:");   
      
    for (
    $i=1$i<$max$i++) 
    {   
       
    $von strpos ($quelltext"[BILD:");
       
    $bis strpos ($quelltext"]"von);

       
    // Text in drei Teile schneiden:
       
    $quelltext_anfang substr $quelltext1$von-1); // "Bla bla"

       
    $bildinfo substr ($quelltextvonbis); // "[BILD:apfel]"
       
    $quelltext_ende substr $quelltext$bis+1); // "und so weiter [BILD:birne] das wars"

       // ... Verarbeitung von $bildinfo ...
       
    $bildinfo_neu = ...

       
    $quelltext $quelltext_anfang $bildinfo_neu $quelltext_ende;

    Ist das korrekt und gut so? Oder habt ihr eine schönere Lösung?
    www.mi-ro.net

  • #2
    ähh wie wärs mit regex ??

    ich verschieb dich mal ...

    Kommentar


    • #3
      @miroculix
      ich zitiere dich mal (anderer thread):
      Das mit den regulären Ausdrücken ist ja toll und einfach.
      na dann mal los!
      GNU/LINUX

      Kommentar


      • #4
        hier mal eine funktion von mir, bei der ich ähnliches mache, wie du willst.

        PHP-Code:
          function ReplaceAllTags ($msg) {

            
        /* Alle Image-TAGs austauschen */
            
        $msg preg_replace("/\[IMG\|([0-9]+)\|(LEFT|RIGHT|TOP|MIDDLE|BOTTOM|NONE)\|([0-9])\|([0-9]+)\|([0-9]+)\|(.*?)\]/i",
                                
        "<img src=\"/images/getimage.php?id=$1\" align=\"$2\" border=\"$3\" width=\"$4\" height=\"$5\" alt=\"$6\" vspace=\"5\" hspace=\"5\">",
                                
        $msg);
            
        $msg str_replace("align=\"NONE\" " ,""$msg); // NONE ist nicht bei IMG SRC erlaubt.

            
        return $msg;
          } 
        in einem text ($msg) stehen verschiedene IMAGES in form von [IMG|27|LEFT|1|250|356|ALT] .

        das pipe '|' verwende ich zur parametertrennung. die einzelnen parameter des textes sind hier beschrieben.

        Code:
        [IMG|   -> image-einleitung
        27      -> ID in der DB
        LEFT    -> ausrichtung der <img src...> im quelltext (html)
        1       -> border
        250     -> width
        356     -> height
        ALT     -> ALT text
        ]       -> abschluss des tags
        da ich meine bilder aus der DB hole, brauche ich nur eine id. wenn du die dateien als file vorliegen hast, brauchst du das ja nur durch APFEL oder BIRNE zu ersetzen, oder wie auch immer ..

        i hope this help.
        Zuletzt geändert von Abraxax; 01.11.2002, 10:36.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Danke erstmal!

          Aber ich habe das Problem, dass ich erstmal die Image-Information in einer Variable haben möchte.
          Damit muss ich nochmal in der Datenbank etwas nachlesen
          und ggf. ein kleines JavaScript am Anfang der HTML-Datei erzeugen (für Rollover-Effekt).

          Mit regulären Ausdrücken geht das sicher auch,
          aber das verstehe ich dann in 4 Wochen selbst nicht mehr...


          Wenn mein Code fertig ist, poste ich ihn mal.
          Vielleicht könnt ihr mir beim Tunen helfen.
          Müsste nächste Woche fertig sein.
          www.mi-ro.net

          Kommentar


          • #6
            du kannst ja die funktion um eine weitere ImgId erweitern, die als rollover gilt.

            das javascript zum overn kannst du ja immer drin haben.
            die bilder kann man ja auch mittels namen ansprechen und so wechseln. glaube ich

            mit den REGS ist das nicht so schwierig. ich habe auch erst vor kurzem damit angefangen. erst einfach, dann etwas schwieriger.

            probier es einfach mal.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X