Problem mit preg_replace

Fluctuator

Mitglied
Hallo,

ich habe ein Script zum Parsen von Templates geschrieben. Das ersetzen der Variablen (Keys) funktioniert auch soweit, allerdings wird immer nur die letzte Variable (Key) ersetzt.
Hier erstmal der Queltext:

test.template.htm:

<html>
<head>
<title>{Titel}</title>
</head>
<body>
<table>
<tr>
<td>{Überschrift}</td>
</tr><tr>
<td>Hier kommt der {Inhalt} hin.</td>
</tr>
</table>
</body>
</html>


test.php:

<?php

$root = "test.template.htm";

$variable = array("Titel" => "Testtitel",
"Überschrift" => "Testüberschrift",
"Inhalt" => "Testinhalt");

function getTemplate($root)
{
$template = file_get_contents($root);
return $template;
}


foreach ($variable as $key => $value)
{
$assigned = preg_replace("/\{$key\}/", $value, getTemplate($root));
}

echo $assigned;


?>

Wenn ich jetzt test.php aufrufe, wird nur {Inhalt} durch Testinhalt ersetzt. {Titel} und {Überschrift} bleiben unverändert. Warum werden nicht alle Variablen (Keys) ersetzt?

MfG Fluctuator
 
PHP:
<?php 

$root = "test.template.htm"; 

$variable = array("Titel" => "Testtitel", 
  "Überschrift" => "Testüberschrift", 
  "Inhalt" => "Testinhalt"); 

function getTemplate($root) 
{ 
  $template = file_get_contents($root); 
  return $template; 
} 

$assigned = getTemplate($root);

foreach ($variable as $key => $value) 
{ 
$assigned = preg_replace("/\{$key\}/", $value, $assigned); 
} 

echo $assigned; 
?>
 
ansonsten

gibt es hier im Tutorials Bereich
eine wundervolle kleine Klasse,
die vielleicht ein paar Macken hat
aber die Grundlagen des Template-
Parsens ganz gut vermitteln sollte.

Jona
 
Zurück