Meikel: Datei in String laden und Variabeln ersetzen

Huhu liebes Forum,

ich stehe entweder auf dem Schlauch oder komme einfach nicht weiter...
Das Problem ist auch nicht riesig... eher simpel - denke ich mal.

Ich möchte gerne (z.B. für den Email-Versand) vorgefertigte Dateien nutzen, in denen dann beim Aufruf durch PHP lediglich ein paar (in der Datei selbst angegebenen) Variablen ersetzt werden.

Ungefähr so dachte ich es mir (abgespeckt):

//Mögliche Funktion 1):

function fuege($filename)
 {
  $arr = file($filename);
  return implode("", $arr);
 }

//Mögliche Funktion 2):

function fuege($filename)
 {
  return file_get_contents($filename);
 }

//script.php:

$var1 = "lorem";
$var2 = "ipsum";

fuege("datei.php");

//-----

//datei.php:

text text text $var1 text text $var2 text

-----------------

Dabei kommt aber leider immer nur "text text text $var1 text text $var2 text" heraus und nicht wie gewollt "text text text lorem text text ipsum text".

Hat jemand eine Ahnung, wie ich dies dennoch ohne riesige Funktionen hinkriege?
Liebe Grüße, Meikel

  1. text text text $var1 text text $var2 text

    Sorry, habe leider 2 Dinge vergessen:

    1. Den PHP-Code hervorheben zu lassen...
    2. Es funktioniert auch nicht, wenn man {} vor die Variabeln setzt ( {$var1} ).

    1. Hi,

      Es funktioniert auch nicht, wenn man {} vor die Variabeln setzt ( {$var1} ).

      Da kannst du vorsetzen, was du willst - du hantierst mit reinem Text, der nicht als PHP geparst wird, also wird da auch nichts "ersetzt".

      Entweder du lässt den Code parsen (eval -> ist aber evil), oder du schreibst dir selbst eine kleine Funktion, die Platzhalternamen und Werte übergeben bekommt, und dann im Text die Ersetzungen vornimmt - das könnte im primitivsten Falle schon str_replace erledigen.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
    2. Der "Verkettungsoperator" ist ein Punkt '.'

      "text1".$var1."text2"."usw."

  2. echo $begrüßung;

    Ich möchte gerne (z.B. für den Email-Versand) vorgefertigte Dateien nutzen, in denen dann beim Aufruf durch PHP lediglich ein paar (in der Datei selbst angegebenen) Variablen ersetzt werden.

    In einer Textdatei existieren keine Variablen. Es sind nur Daten, kein Code. Die einfache Variante ist eine Stringersetzung (str_replace() oder strtr() (nicht zu verwechseln mit strstr() )). Das Aufwendigere wäre irgendwas mit eval() basteln, um aus den Daten Code zu erzeugen. Das ist dann aber auch die unsicherste Variante, wenn man es nicht aufwendig genug baut.

    echo "$verabschiedung $name";