mehrere Platzhalter ersetzen

Kalito

Erfahrenes Mitglied
Hallo,

ich schreibe gerade an einer dynamischen Mailklasse, hänger aber an der Ersetzung von Platzhaltern.

Aus einer Datenbank hole ich mir den Mailtext, welche Platzhalter in der Form ###Platzhalter### beinhaltet. Mit der Funktion reg_replace klappt es auch ganz gut, jedoch schaffe ich es nicht mehrere Platzhalter in einem Text zu ersetzen. Meine Funktionen sehen wie folgt aus:
PHP:
public function test(){
    $this->versenden("passwort_vergessen",array('inhalt'=>array('firstname'=>'Max','token'=>'abc')));
}

public function versenden($name, $datenarray){
        $mail['Mail']['body'] = "Hallo ###firstname###. Dies ist dein ###token###"
        $inhalt = "";
        if($dataarray['inhalt']){
            foreach($dataarray['inhalt'] as $id => $value){
                $inhalt = $this->placeholder('{###'.$id.'###}', $value, $mail['Mail']['body']);
            }    
        }
        else{
            $inhalt = $mail['Mail']['body'];
        }
}

Mit der der foreachschleife wird aktuell immer nur der letzte Platzhalter mit dem entsprechenden Wert gefüllt. Wie schaffe ich es aber, das n Platzhalter ersetzt werden?


Gruß, Kalito
 
Zuletzt bearbeitet:
Hab es hinbekommen
PHP:
if($dataarray['inhalt']){
            //Aufbau der Arrays für die Ersetzung
            foreach($dataarray['inhalt'] as $id => $value){
                $platzhalter[] = "{###$id###}";
                $ersetzen[] = $value;
            }    
            //Ersetzen der Platzhalter
            $inhalt = $this->placeholder($platzhalter, $ersetzen, $mail['Mail']['body']);
        }
 
Zurück