preg_replace_callback - funktion und definitionsbereich von variablen

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

  • preg_replace_callback - funktion und definitionsbereich von variablen

    alsooooo....

    ich habe ein problem mit einer neuen version einer template-klasse und zwar folgendes:
    ich lese ein template-file zeilenweise als array ein und möchte dann die platzhalter ersetzen. dazu verwende ich preg_replace_callback unter verwendung einer vorerst einfach callback-funktion. leider schaff ich es nicht, die vorher übergebenen werte "in die funktion hineinzubekommen", d.h. ich kann aus der callback-funktion auf keine variablen zugreifen, die außerhalb definiert wurden.

    PHP-Code:
    class tplEngine
    {
    function 
    parse($tplFile,$tplData)
    {
    // datei einlesen und im array speichern (file)

    function analyze($matches)
    {
    // hier möchte ich auf $tplData zugreifen...
    // leider will php das wohl garnicht 
    }

    preg_replace_callback($pattern,'analyze',$file_array)

    }



    wie kann ich nun in analyze auf $tplData , also die einzufügenden Werte zugreifen?
    irgendwie check ichs nichmehr...


    vielen dank schonmal im vorraus für fast jede antwort :P
    grüße
    Breezzer

  • #2
    Ehm, schonmal was von Eigenschaften gehört?

    Des Weiteren Frag ich mich wozu du die Datei Zeilenweise einlesen und ersetzen willst, ich denke mal du liest ohnehin die Komplette Datei ein und verarbeitest sie an jeder Stelle gleich, oder nicht?
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      Original geschrieben von ArSeN
      Ehm, schonmal was von Eigenschaften gehört?
      jap, kenn ich =)
      aber ich weiss nicht so recht, was du mir damit sagen möchtest....es ist ja gerade mein problem, dass ich aus der callback-funktion auf nichts davon zugreifen kann, auch wenn ich $tplData als eigenschaft an die klasse übergeb und per $this darauf zugreifen möchte.
      oder check ichs grad einfach nich...



      Original geschrieben von ArSeN

      Des Weiteren Frag ich mich wozu du die Datei Zeilenweise einlesen und ersetzen willst, ich denke mal du liest ohnehin die Komplette Datei ein und verarbeitest sie an jeder Stelle gleich, oder nicht?
      ich hatte da mal ne schlaue idee und will eigentlich nur ein bisschen daran rumbasteln, obs später auch erfolgreich wird oder nicht muss man mal abwarten.

      Kommentar


      • #4
        In der Funktion parse definierst du die Funktion analyze... das wird so nichts...
        Auserdem sind das (teilweise )keine Funktionen sondern Methoden.
        Behandle sie auch so!
        Wir werden alle sterben

        Kommentar


        • #5
          PHP-Code:
          class {
           private 
          $_tplData;
           public function 
          _callback $matches ) {
           }

           public function 
          analyzeTemplate $file ) {
            
          preg_replace_callback $pattern, array ( $this'_callback' ), $file_array );
           }

          In der Methode _callback kannst du jetzt auf $_tpldata zugreifen - wo ist dein Problem? (zu Callbacks siehe auch hier) Ich glaube allerdings nicht, dass das was du vorhast sinnvoll ist.
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Kommentar

          Lädt...
          X