PHP Code und HTML in einer Variable ausführen
Steve
- php
Hallo,
ich habe folgendes Problem:
ich habe eine Variable, welche ich aus einer datenbank erhalte.
in dieser ist html code, aber auch php code.
so in etwa:
$variable='<table><tr><td><? echo "inhalt" ?></td></tr></table>';
ich will jetzt die variable ausgeben, so dass der html code dran steht und der php code ausgeführt wird. Also so wie wenns in ner datei stehen würde und ich diese mit include(); ausführen würde.
wenn ich echo $variable; mache, dann führt er mit den code nicht aus, sondern schreibt mir den so hin wie er in der variable steht => shit!
gibts da ne lösungsmöglichkeit?
danke, steve
Hallo,
gibts da ne lösungsmöglichkeit?
Schau die das mal an:
http://de2.php.net/eval/
MfG
Andre Becker
Jo, hab ich auch ausprobiert, das problem ist, dass da ja html code dabei ist.
und es auch vorkommen kann, dass nur html oder nur php code in der variable ist, je nach dem halt. und wenn man eval auf html code macht gibts nen fehler
Hallo,
gibts da ne lösungsmöglichkeit?
Schau die das mal an:
http://de2.php.net/eval/MfG
Andre Becker
Hello,
und es auch vorkommen kann, dass nur html oder nur php code in der variable ist, je nach dem halt. und wenn man eval auf html code macht gibts nen fehler
Das mache ich dauernd. Kommt immer drauf an, wie Du das abspeicherst.
Wenn Du die einzubindenden Inhalte genauso speicherst, wie Du eine include-Datei speichern würdest, nur dass Du die PHP-Open und -Close-Tags weglassen musst, dann klappt das auch.
Allerdings sollte man eval() in einer Wrapper-Funktion kapseln, um das aufrufende Script und die aufgerufenen Statements voneinander zu trennen (Namensräume, Scopes). Wenn man in dem zu evaluierenden Strung Funktionen definiert, sollte man diese Definitionen bedingt durchführen, abhängig vom mVorhandensein der Funktion im Script. Man könnte sonst leicht einen Redefinitin-Error (oder hieß der jetz Redeclare-Error?) bekommen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Allerdings sollte man eval() in einer Wrapper-Funktion kapseln, um das aufrufende Script und die aufgerufenen Statements voneinander zu trennen (Namensräume, Scopes). Wenn man in dem zu evaluierenden Strung Funktionen definiert, sollte man diese Definitionen bedingt durchführen, abhängig vom mVorhandensein der Funktion im Script. Man könnte sonst leicht einen Redefinitin-Error (oder hieß der jetz Redeclare-Error?) bekommen.
Jo, ich glaub da liegt das problem, da stehen funktionen drin, also die werden da nicht definiert, aber die sollen auch ausgeführt werden und das klappt nicht, die schreibt der mir immer aus
Hello,
Allerdings sollte man eval() in einer Wrapper-Funktion kapseln, um das aufrufende Script und die aufgerufenen Statements voneinander zu trennen (Namensräume, Scopes). Wenn man in dem zu evaluierenden String Funktionen definiert, sollte man diese Definitionen bedingt durchführen, abhängig vom mVorhandensein der Funktion im Script. Man könnte sonst leicht einen Redefinitin-Error (oder hieß der jetz Redeclare-Error?) bekommen.
Jo, ich glaub da liegt das problem, da stehen funktionen drin, also die werden da nicht definiert, aber die sollen auch ausgeführt werden und das klappt nicht, die schreibt der mir immer aus
Aufrufen kannst Du in dem zu evaluierenden String alle Funktionen, nur nicht ohne weiteres definieren. Wenn der String aus irgend welchen Gründen innerhalb des Scriptes mehrfach evaluiert werden muss, dann gibt es eben diesen Redefine-Error.
Das einfachst ist doch, Du postetst mal einen dieser Strings hier, zusammen mit den Fehlermeldungen, die bei Dir auftauchen. Aber bitte nicht so ein Riesenteil, sonder nur was minimalistisches, was deine Sorgen offenlegt.
Liebe Grüße aus http://www.braunschweig.de
Tom
Das einfachst ist doch, Du postetst mal einen dieser Strings hier, zusammen mit den Fehlermeldungen, die bei Dir auftauchen. Aber bitte nicht so ein Riesenteil, sonder nur was minimalistisches, was deine Sorgen offenlegt.
OK:
es geht um folgende die Variablen mit der funktion show_img() welche aus einer Datenbank gelesen werden
$row["text"]='show_img("1.jpg");';
oder mit Text
$row["text"]=<p>Text</p>';
kann aber auch beides drin sein
eval ("$row[text] = "$row[text]";");
echo $row["text"];
fehler sind unterschiedlich, je nach dem welche variable angezeigt werden sonn
z.B. Parse error: parse error, unexpected T_DNUMBER in /.../trips.php(144) : eval()'d code on line 3
Hello,
es geht um folgende die Variablen mit der funktion show_img() welche aus einer Datenbank gelesen werden
$row["text"]='show_img("1.jpg");';
oder mit Text
$row["text"]=<p>Text</p>';
kann aber auch beides drin sein
eval ("$row[text] = "$row[text]";");
echo $row["text"];
fehler sind unterschiedlich, je nach dem welche variable angezeigt werden sonn
z.B. Parse error: parse error, unexpected T_DNUMBER in /.../trips.php(144) : eval()'d code on line 3
Ich hatte geschrieben: Speichere den Code so, als würdest Du eine lauffähige PHP-Datei erzeugen wollen. Lass nur die PHP-Open und -Close-Tags weg!
Alse bitte: ...
Liebe Grüße aus http://www.braunschweig.de
Tom
$row["text"]='show_img("1.jpg");';
oder mit Text
$row["text"]='<p>Text</p>';
kann aber auch beides drin sein
Ich hatte geschrieben: Speichere den Code so, als würdest Du eine lauffähige PHP-Datei erzeugen wollen. Lass nur die PHP-Open und -Close-Tags weg!
Schon klar hab ich ja: beide $row["text"]= wären lauffähige php-dateien.
aber die mit der funktion klappt nur wenn ichs so mach:
eval("echo $row[text];");
und die mit dem text klappt nur so:
eval("$row[text] = "$row[text]";");
echo $row["text"];
aber dann wird wieder kein php code ausgeführt
und es soll ja beides klappen, und dass tuts nicht