Template Klasse

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

  • Template Klasse

    Hallo Kollegen,


    ich möchte mit einer selbst geschriebenen Template Klasse in einer Template alle $variablen und $arrays[0] mit Hilfe von eval() ersetzen.
    Das Problem ist aber der Gültigkeitsbereich der Variablen.
    Ich kann ja nicht jede Variable mit global; definieren.
    Auch will ich nicht jede Variable wie bei phplib definieren.

    Da dachte ich mir:
    Ersetz mit einem reg. Ausdruck alle $variablen und $arrays[0] durch $GLOBALS[variablen] und $GLOBALS[arrays][0] und jage das Ding dann durch eval();

    Aber das klappt leider auch nicht:
    Script:
    PHP-Code:
    $arrays[0] = "Nein !!";
    $das "das";
    $text '$das ist doch egal oder ? $GLOBALS[arrays][0]';
    echo 
    "$text";
    $text addslashes($text);
    eval (
    "\$text = \"$text\";");
    $text stripslashes($text);
    echo 
    "<br>$text"
    Ausgabe:
    Code:
    $das ist doch egal oder ? $GLOBALS[arrays][0]
    das ist doch egal oder ? Array[0]

    Das macht mich noch wahnsinnig.
    Was soll ich tuen ? oder war die idee, eine Klasse zu benutzen, unsinnig ? Bitte antwortet mir.

    MFG Troublegum
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

  • #2
    PHP-Code:
    function parse($tplname,$handle,$anhang=0) {
        
    reset($GLOBALS);
        while(list(
    $key,$value)=each($GLOBALS)) {
            $
    $key=$value;
        }
        if(!isset(
    $this->cache[$tplname])) {
            
    $this->cache_tpls($tplname);
        }
        
    $temp $this->cache[$tplname];
        if(
    $anhang==1) {
            eval (
    "\$handle .= \"$temp\";");
        }
        else {
            eval (
    "\$handle = \"$temp\";");
        }
        return 
    $handle;

    Funktioniert zwar, aber leider nur eingeschränkt.
    Mehrdimensionale Arrays werden nicht ersetzt.
    Aber ich schätze, das reicht erstmal.
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar

    Lädt...
    X