Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_replace -> preg_replace_callback

Einklappen

Neue Werbung 2019

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

  • preg_replace -> preg_replace_callback

    Guten Abend,

    ich habe folgende preg_replace Funktion in meinem Script:
    PHP-Code:
     $this->template preg_replace"/" .$this->leftDelimiterF ."include file="(.*)\.(.*)""
                                                
    .$this->rightDelimiterF."/isUe",
                                                
    "file_get_contents(\$this->templateDir.'\\1'.'.'.'\\2')",
                                                
    $this->template ); 
    Diese würde ich gerne durch die preg_replace_callback Funktion ersetzen. Habe da jetzt schon einige Zeit mich dran versucht, aber komme leider nicht weiter. Kann da vll jemand helfen?

    Danke!

  • #2
    Zitat von bulist Beitrag anzeigen
    Guten Abend,

    ich habe folgende preg_replace Funktion in meinem Script:
    PHP-Code:
     $this->template preg_replace"/" .$this->leftDelimiterF ."include file="(.*)\.(.*)""
    .$this->rightDelimiterF."/isUe",
    "file_get_contents(\$this->templateDir.'\\1'.'.'.'\\2')",
    $this->template ); 
    Diese würde ich gerne durch die preg_replace_callback Funktion ersetzen. Habe da jetzt schon einige Zeit mich dran versucht, aber komme leider nicht weiter. Kann da vll jemand helfen?

    Danke!
    Ich benutze zwar sehr selten preg_replace_callback, aber so sollte es passen:

    PHP-Code:
    $this->template preg_replace_callback"/" .$this->leftDelimiterF ."include file="(.*)\.(.*)""
                                                                      
    .$this->rightDelimiterF."/isUe",
                                                                       
    'callback' ,
                                                                       
    $this->template);
    function 
    callback($match){
       
    //do something with $match
       
    return $match

    preg_replace_callback braucht 3 werte 1. das pattern 2. die Funktion, 3. den string

    Kommentar


    • #3
      Zitat von Cnodex Beitrag anzeigen
      Ich benutze zwar sehr selten preg_replace_callback, aber so sollte es passen:
      Das ist genau wie das original syntaktisch und funktional falsch. Schau Dir doch bitte Deinen Code an bevor Du diesen postest!

      Kommentar


      • #4
        Zitat von bulist Beitrag anzeigen
        Diese würde ich gerne durch die preg_replace_callback Funktion ersetzen.
        Klar wo genau hängt es denn? Aber das was Du vorhast ist eigentlich nicht OK. Will heissen Du kanns niemals ein Template einbinden da dieses nicht geparst wird wenn Du per file_get_contents drauf zugreifst. Da kannst Du nur statisches Zeug einbinden oder Dinge die keiner Templateengine mehr bedürfen. Das kann doch aber nicht Dein Ziel sein. Du must das einzubindene Template vorher Parsen bevor Du es einbindest.

        Dann schau ins Manual wie preg_replace_callback anzuwenden ist. Das ist nix kompliziertes!

        Ich gebe Dir ein fast lauffähiges Beispiel ohne parsen des Templates: https://eval.in/private/11055c449b8f03

        Der Fehler geht halt weg wenn Du eine existierende und lesbare Template-Datei nimmst.

        Aber das sollte nicht Dein Ziel sein da es nur sehr halbherzig ist

        Kommentar

        Lädt...
        X