Da mein letzter Thread nicht sooooo super ausformuliert und wenig hilfreich war, fange ich hier nochmal grundlegend an.
<!-- ANFANG news -->
<table width="75%" class="rahmen">
<tr>
<td class="titelfeld">
{!titel}
</td>
</tr>
<tr>
<td>
Autor: {!autor} - ({!datum}) -
</td>
</tr>
<tr>
<td>
{!text}
</td>
</tr>
<tr>
<td>
{!link}
</td>
</tr>
</table><br>
<br>
<!-- ENDE news -->
Das ist der HTML Code im Template der Probleme macht. Folgender PHP-Code sollte das <!-- ... --> Zeugs eigentlich mit dem Inhalt drin zu {!news} editieren. Sobald aber das {!datum} geklammert wird, funktioniert das nicht mehr.
An Stellen wo der HTML-Code nicht ausgeschnitten wird um in später mehrfach wieder einzusetzen, passiert kein Fehler.
Allerdings wenn das Klammerproblem in so einem Codeblock auftritt, dann ersetzt er den Block nicht mehr.... Woran kann das liegen? Hier der entsprechende PHP-Code:
preg_match_all('#<!--\s*ANFANG\s*(\w*)\s*-->(.*)<!--\s*ENDE\s*(\\1)\s*-->#s',
$this->template,
$elemente);
for($i = 0; $i < count($elemente[1]); $i++){
$this->objekte[$elemente[1][$i]] = &new template($elemente[2][$i], '',2);
$this->objekte[$elemente[1][$i]]->vorlage($elemente[2][$i]);
$this->template = preg_replace('#<!--\s*ANFANG\s*'.$elemente[1][$i].'\s*-->'.$elemente[2][$i].'<!--\s*ENDE\s*'.$elemente[1][$i].'\s*-->#s',
'{!'.$elemente[1][$i].'}',
$this->template);
}
Wieso tritt so ein Fehler auf? Wieso bricht er das ausschneiden da einfach ab und lässt den Code wie oben in der direkten Form stehen?
Danke für alle hilfreichen Ideen. Und ich hoffe ich nerve nicht zu sehr damit.