Probleme mit eval()

visiondpc

Erfahrenes Mitglied
Hallo. Ich hab da mal ein kleines Problem bei dem Ihr mir hoffentlich weiterhelfen könnt. Ich arbeite momentan an einer Website bei der der HTML-Code in einer Datenbank hinterlegt ist.
Jetzt würde ich gerne realisieren, dass ich innerhalb des HTML-Codes auch Variablen einsetzen kann.

Wenn ein Datensatz z.B. das hier enthält:
Code:
<table>
<tr>
<td class="counter_text">
<td>$counter</td>
</tr>
</table>

Soll $counter halt durch den im PHP-Script erzeugten Wert ersetzt werden.
Ich habs schon mit der Funktion eval() versucht aber das bringt mir nur eine Fehlermeldung.
PHP:
echo eval ("\$db_daten['html'] = \"$db_daten['html']\";");

Parse error: parse error, unexpected T_STRING in /srv/www/htdocs/web/html/index.php(154) : eval()'d code on line 1

Kann mir jemand sagen wo der Fehler liegt bzw. wie ich es umsetzen kann das es funktioniert?

edit:
Ich glaube mittlerweile herausgefunden zu haben, dass es an den Anführungszeichen in den HTML-Tags liegt also habe ich nochmal folgendes versucht:
PHP:
$output = str_ireplace('"', '\"', $db_daten['html'] );
echo eval ("\$output = \"$output\";");

Allerdings mit dem Ergebnis, dass garnichts mehr ausgegeben wird an der Stelle wo der Datensatz sein sollte.
 
Zuletzt bearbeitet:
Probier mal Folgendes:
PHP:
eval ('$output = "'.str_replace('"', '\\"', $db_daten['html'] ).'";');
echo $output;
 
Spitze das funktioniert jetzt. Danke Dir. Nur ganz verstanden hab ich es nicht. DIe Funktion eval() ist in der PHP-Doku leider nicht besonders gut erklärt.
 
Zurück