Ich möchte Platzhalter in Templates ersetzen.
Habe mir das ungefähr so gedacht:
class_template.php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: |
function template ($dir, $tmpl_name, $tmpl_content) {
global $tmpl;
$pfad = "".$dir."\\".$value_name."";
$fp = fopen($pfad, "r");
$tmpl = fread($fp, filesize($pfad));
fclose($fp);
$tmpl = str_replace('{', '', $tmpl);
$tmpl = str_replace('}', '?>', $tmpl);
//Hier der Teil wo die schleife rein soll
return $tmpl;
}
}
?> |
In meiner index.php kommen dann beliebig viele Programmteile die als $tmpl_content[irgendwass] deklariert werden.
Bsp:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11: |
$dir = 'c:\\intranet\\Apache2\\htdocs\\test\\templates';
$tmpl_name = 'index.tpl';
$tmpl_content[title] = 'echo "blabla";
$gaga = 123 + 123;
echo $gaga;';
$tmpl_content[text] = 'echo "Hallo Welt";
$baba = 999 * 999;
echo $baba;';
require_once('./templates/class_template.php');
?> |
Jetzt muss ich nur noch in den Templates die Platzhalter nach dem Name der Programmfunktion einfügen:
1:
2:
3:
4:
5:
6:
7: |
{$title}
{$text}
|
Um die Platzhalter zu ersetzen ist die Schleife notwendig.
Vor der Schleife muss ermittelt werden wie groß der Index ist.
Dann bestimmt die größe des Indexes wie offt die Schleife wiederhohlt werden soll um alle Platzhalter zu ersetzen.
Da der Index den gleichen Name wie die Platzhalter trägt muss lediglich nur noch der name des jeweiligen Indexes ausgelsen werden und als str_replace('indexname', $inhalt vom jeweiligen index, $templ);.
Der Vorteil ist das ich in meiner index.php so viele Programmteile in das Array eintragen kann wie ich will.
Nur weiß ich nicht wie ich die Schleife definiere