Template-System und [if x==y]...[/if]

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

  • #16
    Die Variante von Patrick klingt auch nicht schlecht.
    Am Wochenende dürfte ich Zeit finden, dass auch mal zu testen.

    MfG Sodan

    Kommentar


    • #17
      also ich hab meine template klasse jetzt komplett neu aufgesetzt und ganz ohne regex gemacht was einen erheblichen geschwindigkeitsvorteil hat und beliebig erweiterbar ist - es ist garnicht so schwierig - wenn jemand interessiert ist kann ich mal das prinzip erklären wobei man sich den restlichen code allerdings selber schreiben muss
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #18
        dann erklär doch mal

        Kommentar


        • #19
          also das prinzip ist ganz einfach:[list=1][*]suchen des Anfangs einer Funktion / Variable ( [ / { )[*]suchen des endes ( ] / } )[*]extrahieren des inhalts und auswertung[/list=1]
          sieht dann ungefähr so aus:
          PHP-Code:
          $last_pos 0;
          while ( 
          $start_pos strpos $string'{'$last_pos ) ) {
          // So lange wiederholen wie neue Variablen gefunden werden
              
          $end_pos strpos $string'}'$start_pos );
              
          $var substr $string$start_pos$end_pos $start_pos );
              
          // Variableninhalt extrahieren
              // weiterverarbeitung [ ... ]

          bei mir wird dann ein mischcode erzeugt der am ende durch php geparst wird...
          für funktionen die direkt in der template klasse geparsten werden sollen und für die der inhalt zwischen z.b. [block] und [/block] bekannt sein soll wird ein stack genutzt (tipp: array_pop() und array_push()) - mit einem stack lässt sich übrigens auch xml/html parsen....
          so ist es möglich ein template schnell und ohne regexe zu parsen denen ich sowieso im moment sehr kritisch gegenüberstehe das sie in allen möglichen situation gebraucht werden wo man uach einfach strpsos, str_replace oder ähnliche benutzen kann... sinnvoll finde ich die regexe allerdings immer noch bei email adressen oder so...
          viel spaß beim basteln
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Kommentar

          Lädt...
          X