Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   php-code parsen (https://boardunity.de/php-code-parsen-t3908.html)

bacon 25.01.2006 14:47

php-code parsen
 
Hallo :)

folgende Frage: Gesetzt den Fall, ich habe eine "normale" PHP-Datei, d.h. HTML und <? php ?> gemischt, in ner Datenbank stehen. Diese Datei möchte ich zur Laufzeit eines anderen php-Skriptes ausführen lassen (als "quasi-Plugin").

Wie könnte man den Code durch den Parser jagen und entsprechend ausgeben lassen?
Ich habe folgende dumme "Ideen":

1.) Das ganze auf <? und ?> untersuchen und die entsprechenden Teile nacheinander mittels eval() auswerten. Gibt aber viel Aufwand, wenn man auch noch <?foreach:?>...<?endforeach?> etc... berücksichtigen will, und regexen und nochmal regexen und dann nochmal den parser arbeiten lassen, erscheint mir ein wenig von hinten mit der faust aufs auge.

2.) Ganz blöd: Den Quelltext temporär speichern, und die Temp-Datei per include einbinden, dann wird sie ja auch ausgewertet... ist aber irgendwie unelegant, man müsste ja die datei aus der db holen, speichern, wiederum öffnen.. auch doof.

3.) (und hier hörts ganz auf): php per system() aufrufen und die Ausgabe auswerten. Hier habe ich aber das Problem der Plattformabhängigkeit, anscheinend muss man php per console mit php -r "code" aufrufen, außerdem sind Befehle wie system(), passthru() etc. bei den meisten Providern eh deaktiviert.

Gibt es hierfür vielleicht eine Lösung, die ich noch nicht bedacht habe?

Björn 25.01.2006 15:13

Haben letztens ausführlich in #php-support im Quakenet darüber geredet und sind zu dem resultat gekommen, dass Möglichkeit 2 die beste wäre. Man muss das Script ja nicht bei jedem Aufruf in eine Tempräre Datei schreiben, nur wenn etwas geändert wurde.
MfG

bacon 25.01.2006 15:32

jau denk ich auch, kann man ja tatsächlich cachen oder so... aber schön wärs natürlich wenns anders ginge. aber das scheint mir auch noch der einfachste weg zu sein. ich glaub, ich machs echt erstmal so, falls einem sonst nochwas einfällt, her damit.

danke .)

eBoy 26.01.2006 15:33

Die "ganz blöde" Möglichkeit 2 finde ich auch am sinnvollsten und verwende diese bei meinem Template-Parser.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25