Template Funktion noch aktuell? Bzw. Kritisch ?

Dimenson

Erfahrenes Mitglied
Moin,

bei einigen Projekte benutze ich folgende Funktion:

PHP:
function GetTemplate($template) { 
	$template	=	file(WI_SITE_DIR."/design/templates/".$template.".html"); 
	$template	=	implode("",$template); 
	$template	=	str_replace("\"", "\\\"", $template); 
	return $template; 
}

Mit diese Funktion lade ich so gewisse Templates. Ist die Funktion so noch aktuell oder bedenklich bzgl. der Sicherheit? Oder der Performance?

Wäre nett über jegliches Feedback oder Vorschläge

Danke
 
Wieso benutzt du folgendes:
PHP:
$template    =    file(WI_SITE_DIR."/design/templates/".$template.".html");  
$template    =    implode("",$template);
[phpf]file_get_contents[/phpf] erledigt genau das Gleiche bis auf die Entfernung der Newline-Zeichen.

Wie sähe denn ein Beispiel-Template aus?
 
Ein Template schaut beispielsweise so aus:

HTML:
<div class="content_left">
	$content_nav_left
</div>
<form action="">
<div class="einstellungen_l">
	$post_meldung
	<div class="einstellungen_main">

		
        
        <a href="#" onclick="test_width()">trs</a>
        
              
        
        
	</div>
</div>
</form>
<div class="main_content_reg">
	$content_nav_right
</div>

Die Variablen definiere ich vorher mit eval tauscht diese quasi die Variable aus:
PHP:
eval ("\$site = \"".GetTemplate("test")."\";");
 
Ok, Danke.

Folgendes wird nicht immer funktionieren!
PHP:
$template    =    str_replace("\"", "\\\"", $template);
Es ersetzt " durch \".
Was passiert, wenn man \" im String vorliegen hat? Es wird durch \\" ersetzt, welches dann in deinem [phpf]eval[/phpf] einen Fehler erzeugen wird!

[phpf]eval[/phpf] hier zu nutzen, finde ich, grenzt an Missbrauch.
So geht es viel einfacher:
PHP:
function runTmpl($tmpl) {
  ob_start();
  require(WI_SITE_DIR."/design/templates/".$tmpl.".html");
  $contents = ob_get_contents();
  ob_end_clean();
  
  return $contents;
}

$site = runTmpl('test');
Viel sauberer!
 
Zurück