Strings durch die PHP engine laufen lassen
Lukas Lentner
- php
3 Dennis
Hi,
Wie kann man einen ganz normalen String mit PHP parsen lassen, um die PHP-Befehle in diesem String abarbeiten zu lassen?
Ich möchte folgendes realisieren:
Jede Seite meiner Homepage soll einen Datensatz in einer MySQL-Tabelle darstellen. Damit werden Überschrift, Farbschemen .... und der Inhalt der Seite abgespeichert. In einem Gästebuch muss der Inhalt der Seite ja auch dynamisch mit PHP-erstellt werden. Das heißt ich muss in die Datenbank PHP-Befehle schreiben. Wenn ich den MySQL-Seiten-datensatz dann aber in meinem PHP-Script abfrage bekomme ich nur einen String zurück. Er enthält aber PHP-Befehle wie das auslesen der Gästebucheinträge. Kann ich diese PHP-Befehle mit so etwas wie zB. parse(); abarbeiten?
Es sollte am ende wie folgt ausschauen:
$inhalt="
for($i=1;$i<=10;$i++)
{
echo "Hallo";
}
";
parse($inhalt);
... dann sollte 10 mal Hallo asgegeben werden
Dank
Bye
Lukas Lentner
Hi Lukas,
Wie kann man einen ganz normalen String mit PHP parsen lassen, um die PHP-Befehle in diesem String abarbeiten zu lassen?
Prinzipiell geht das mit eval() - aber bist du sicher, dass du das wirklich so machen willst? Was für Vorteile siehst du darin, dass jede Seite aus der Datenbank ausgelesen wird? Überleg dir mal, da muss für jeden Seitenaufruf, auch für statische HTML Seiten ein DB Request gesendet werden - besonders performant ist das nicht gerade.
Wenn es nur darum geht, die Inhalte leichter online verwalten zu können, dann würde ich dir empfehlen einfach ein WebFTP Programm auf dem Server zu installieren, dann bist du auch nicht auf FTP Software auf dem Clienten angewiesen.
MfG, Dennis.
Hi Dennis!
Nur eine kleine Ergänzung deines Postings ;-)
Wie kann man einen ganz normalen String mit PHP parsen lassen, um die PHP-Befehle in diesem String abarbeiten zu lassen?
Prinzipiell geht das mit eval() - aber bist du sicher, dass du das wirklich so machen willst? Was für Vorteile siehst du darin, dass jede Seite aus der Datenbank ausgelesen wird? Überleg dir mal, da muss für jeden Seitenaufruf, auch für statische HTML Seiten ein DB Request gesendet werden - besonders performant ist das nicht gerade.
Davon mal angesehen, sollte eval() auch aus sicherheitstechnischen Gründen nicht verwendet werden, da sich hier mal schnell Sachen einschleichen können, die im schlimmsten Fall das Einbinden fremden Codes erlauben. eval() war z.B. auch für die Schwachstellen in PHPXMLRPC verantwortlich und auch phpBB hatte bereits des öfteren ebenfalls damit zu kämpfen.
Man sollte sich also wirklich im Klaren darüber sein, bevor man solche Funktionen wie eval() einsetzt.
Grüße,
Fabian St.