Text mit fopen wird nicht geparst! Was kann ich tun?
Thomas
- php
Hallo,
in einem Skript wird eine Datei mit fopen als String in eine Variable geschrieben, wo der enthaltene Quelltext (teils HTML und PHP) durch preg_replace weiter bearbeitet wird und ungewollte HTML Teile herausgeschnitten werden.
Nun parst aber PHP den mit PHP Quelltext durchsetzten Code nicht mehr. Was kann ich tun, damit PHP den String innerhalb einer Variable parst? Includes funktionieren leider nur mit Dateien. Muss ich vorher den Inhalt der Variable in eine Datei schreiben lassen und sie dann includen, oder gibt es eine einfachere Lösung?
Gruß
Thomas
echo $begrüßung;
Was kann ich tun, damit PHP den String innerhalb einer Variable parst? [...] gibt es eine einfachere Lösung?
Es gibt eine einfache Lösung und die heißt eval(). Doch das ist nicht die sauberste Lösung. Besser wäre es, Code und Daten voneinander zu trennen und nur letztere zu bearbeiten.
echo "$verabschiedung $name";
Hallo Thomas,
um den Code in Deinem String ausfuehren zu lassen gibt es die Funktion eval($string);
Diese Funktion wird oft als sehr gefaehrlich bezeichnet,
weil bei Usereingaben jeder Mist ausgefuehrt werden koennte.
Wenn Du das ausschliessen kannst, ist das aber eine gute Loesung.
Gruss Norbert
Hallo,
Eval hat bei mir wohl leider Schwierigkeiten, wenn im String zuerst HTML Quelltext und danach erst der PHP Quelltext kommt.
Als Error gab eval aus, dass in Zeile 1 (scheinbar vom String) das folgende Zeichen unerlaubt sei: "<"
Das wäre die geöffnete Tag-Klammer aus dem HTML Code. Eval ist, wie ihr schon sagt, doch mit Vorsicht zu genießen. Ich probiere mal den Umweg mit einer externen Datei, welche als Zwischenspeicher für den include dient.
Habt trotzdem vielen Dank für euren Rat!
Gruß
Thomas
echo $begrüßung;
Eval hat bei mir wohl leider Schwierigkeiten, wenn im String zuerst HTML Quelltext und danach erst der PHP Quelltext kommt.
Wie die englische Version des Handbuch-Kapitels zu eval() zu berichten weiß: Da eval() davon ausgeht, bereits im PHP-Mode zu sein, muss man diesen erst mit ?> verlassen, wenn der String mit HTML, bzw. außerhalb eines PHP-Bereichs beginnt.
echo "$verabschiedung $name";