Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: PHP {Variable}

  Alt 23. Jul 2009, 19:03
Ich habe das so gelöst:
Code:
function parse_tpl ($templates, $values = array())
{
   if (!is_array ($templates))
   {
      $templates = explode (',', $templates);
   }

   foreach ($templates as $template)
   {
      @ $tpl_text .= "\r\n\r\n" . file_get_contents($_SESSION['tplpath'] . $template . '.tpl');
   }

   $GLOBALS['tpl_resarr'] = $values;

   $tpl_text = preg_replace ('/\{tpl\|(.+?)\}/e', '$GLOBALS[\'tpl_resarr\'][\\1];', $tpl_text);

   unset ($GLOBALS['tpl_resarr']);

   echo $tpl_text;
}

parse_tpl ('header,menu', array ('sitename' => $sitename));
Das ist eine Funktion zum parsen von templates. Im Template steht dann sowas wie {tpl|sitename} was dann ersetzt wird falls der Wert im Array auftaucht.
das mit dem tpl| hatte ich vorgesehen, um auch im template noch geschweifte Klammern verwenden zu können (falls da z.B. noch Javascript drin ist)

Die ersetzung erfolgt durch preg_replace, was in meinen Augen besser geeignet ist als str_replace, da man den regulären Ausdruck relativ einfach erweitern/anpassen kann.
  Mit Zitat antworten Zitat