Ich bastle immernoch an meiner Template Klasse und wollte nun Schleifen in die Templates einbauen. Eigentlich klappt das auch gut. Blos wenn innerhalb der Schleife im Template eine ( ) oder ? auftaucht funktioniert ereg_replace nicht mehr.
Ob des Problem nur bei ()? oder bei anderen Sonderzeichen auftritt habe ich noch nicht herausgefunden.
PHP-Code:
function loop($key) {
$change = $this->parseArray[$key][0];
$needle = "<!-- ".$change." START -->";
$pos = strpos($this->text,$needle) + strlen($needle);
$needle = "<!-- ".$change." END -->";
$length = strpos($this->text,$needle) - $pos;
$rest = substr($this->text, $pos, $length);
$x = '';
$size = sizeof($this->parseArray[$key][1]);
for($i=0;$i<$size;$i++) {
$rest2 = $rest;
foreach($this->parseArray[$key][1][$i] as $key2=>$value2) {
$rest2 = str_replace($this->leftDelimiter."".$key2."".$this->rightDelimiter, $value2, $rest2);
}
$x .= $rest2;
}
$this->text = ereg_replace($rest,$x,$this->text); // hier taucht der Fehler dann auf.
}
Template
Funktioniert
<!-- HOME START -->
<tr>
<td>{VAR1}</td>
<td>{VAR2}</td>
</tr>
<!-- HOME END -->
Funktioniert nicht mehr
<!-- HOME START -->
<tr>
<td>{VAR1} (Klappt net)</td>
<td>hick.de?id={VAR2} - klappt auch net</td>
</tr>
<!-- HOME END -->
Kommentar