PHP generierter PHP Code Parsen

Hallo

Zur Zeit arbeite ich an einer Homepage, der Content wird mit einem WYSIWYG Editor in einer Datenbank gespeichert. Nun sollte im Content PHP includet werden, da jedoch mein WYSIWYG Editor PHP vor dem Speichern rausfiltert suche ich nach einer Möglichkeit trozdem PHP code einzufügen. Generell würde mir include() reichen.

Der versuch die gewünschte Datei im Editor mit include{datei.php}include und einem späteren str_replace(’~~include{’, ‚<?php include(', str_replace('}include~~', '); ?>‘, ‚content.php‘)); zu intergrieren ist gescheitert, der ausgegebene HTML Code enthält zwar <?php include(datei.php); ?> dieser teil wird jedoch nicht geparst.

Wie kann ich diesen Teil trozdem Parsen?

grüsse space4

Hallo space4,

du musst den Script-Text den du hast mittels eval() ausführen lassen, sonst wird das PHP-Script nur im Browser ausgegeben.

Schau dir hierzu mal das Manuel auf php.net an.

Gruß Mike

hallo

vielen dank für die antwort, eval() ist ziemlich die erste funktion die ich versucht habe, geht leider nicht.

habe soeben ziemlich sicher eine lösung gefunden werde diese anschliessend hier veröffentlichen.

Oh, das wunder mich, da eval() unter anderem ja genau dafür da ist, dass ein PHP-Skript, das aus einer Tabelle stammt, ausgeführt wird.

Ich bin mal auf deine Lösung gespannt.

Gruß Mike

Also, in der Datenbank wir nicht mehr php hinterlegt sondern ein string wie ~~include{modulname}.

Das Ganze wird nun mit Buffer umgesetzt:

Zuerst laden wir das Modul in einen Buffer und schreiben das ganze in eine Variable
ob_start(); //start Buffer
include(‚module/modulname/front/core.php‘);
$modul=ob_get_contents();
ob_end_clean(); //end Buffer

Dann laden wir das modul (war bereits vorher in einem Buffer) und ersetzten ~~include{modulname} durch den code des entsprechenden moduls aus dem ersten Buffer.
ob_start(); //start Buffer
include(„module/$MODUL/$MODUS/core.php“);
$CONTENT= str_replace(’~~include{modulname}’, „$modul“,ob_get_contents());
ob_end_clean(); //end Buffer

eval() meldete mir immer fehler ich vermute eval() kommt mit html php gemisch nicht aus desshalb die fehlermeldung betreffend '  

Ah, alles klar.

eval() würde, wenn ich das Beispiel aus deinem ersten Post noch einmal aufgreifen darf bei eval(‚include(„datei.php“);‘); dafür sorgen, dass die Datei dati.php includiert wird. der Starttag

Danke dir für den hilfeversuch.