Probleme mit str_replace

Kalma

Erfahrenes Mitglied
Hey,

ein kleines Problem mit str_replace. :rolleyes:


Also, hier mein Script:
PHP:
<?php
	class Template
	{
		//define vars
		var	$template_path = 'templates/';
		var $template_vars = array();
		var $template_file;
		
		
		//function to display files/templates
		function display($tpl_file)
		{
			//check, if file exists
			if(!is_file($this->template_path . $tpl_file)) {
				exit('no such template file: '.$tpl_file);
			}
			
			$this->template_file = $tpl_file;
			
			//include file
			include($this->template_path . $tpl_file);
		}
		
		//function to set content for place holder
		function assign($key, $value)
		{			
			str_replace('%'.$key.'%', $value, $this->template_path . $this->template_file);
		}
	}
?>


Bei der letzten Funktion (assign) liegt das Problem. Ich will die angegebene Datei nach %key% Value durchsuchen lassen und durch den Wert (value) ersetzen lassen. Aber der macht das nicht. Die Datei heißt in diesem Falle index.tpl und sieht so aus:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Fußball Manager</title>
	</head>
<body>
	<h1>%heading%</h1>
	TeMpLaTe SyStEm
</body>
</html>

Dann ist hier noch die index.php, in der das assign ausgeführt wird:
PHP:
<?php
	//Template laden
	include 'template.inc.php';
	$tpl	= new Template;

	$tpl->assign('heading', 'Hey, Fette Sache');
	$tpl->display('index.tpl');
?>

Wisst ihr, woran das liegt?
 
Schau doch mal wie andere Templatesysteme das lösen.

Ein paar gibt es auch hier bei den Tutorials. Die sollten eigentlich deine Frage beantworten.

greetz
daddz
 

Neue Beiträge

Zurück