Daten mit PHP an den PHP-Interpreter übergeben
Danny
- php
Hallo,
kann innerhalb eines PHP-Skripts ein String oder eine Datei an den PHP-Interpreter übergeben werden, so dass dieser die Daten wie eine Datei mit Endung php parst und an den Browser übergibt?
Ich weiß, dass man den Apache so konfigurieren kann, dass ein eigener Parser aufgerufen wird, der dann Dateien mit bestimmten Endungen verarbeitet, z.B. über loader.php?file=
Was mache ich aber, wenn der Loader eine PHP-Datei nachladen und den Code darin wie üblich als PHP interpretieren soll?
Vielleicht ist es ganz einfach aber ich komme nicht drauf.
Danke für Eure Hilfe.
Gruß,
Danny
Hi!
Was mache ich aber, wenn der Loader eine PHP-Datei nachladen und den Code darin wie üblich als PHP interpretieren soll?
Guck Dir mal im Manual(http://www.php3.de/manual/de/) die Funktion include() an!
Grüße
Andreas
Hallo Andreas,
vielleicht habe ich mich missverständlich ausgedrückt...
Die Funktion include kenne ich, die hilft mir aber in diesem Fall nicht weiter.
Problemstellung:
Die Datei test.php (besteht hauptsächlich aus HTML-Code) soll von einem eigenen Parser (PHP-Code) durchlaufen werden, der innerhalb der Datei bestimmte Muster, z.B. Tags findet und irgendwie bearbeitet, z.B. Templates.
Anschließend soll diese vorverarbeitete Datei an den PHP-Interpreter weitergereicht werden, der den PHP-Code darin letztendlich ausführt und das Ergebnis an den Browser weiterleitet...
Ich hoffe, jetzt ist klar geworden, was ich meine. ;)
Gruß
Danny
Hi!
Die Datei test.php (besteht hauptsächlich aus HTML-Code) soll von einem eigenen Parser (PHP-Code) durchlaufen werden, der innerhalb der Datei bestimmte Muster, z.B. Tags findet und irgendwie bearbeitet, z.B. Templates.
OK. Du öffnest also die Template-Datei, list deren inhalt ein, oarstr das ganze, veränderst das und was machst Du damit? Dann soll das was da rausgekommen ist von PHP geparst werden, ja? Dazu gibt es eval(), aber die Funktion ist IMHO sehr gefährlich, wenn jemand irgendwie eigenen Code da reinbekommt siehts schlecht aus!
Anschließend soll diese vorverarbeitete Datei an den PHP-Interpreter weitergereicht werden, der den PHP-Code darin letztendlich ausführt und das Ergebnis an den Browser weiterleitet...
Ich hoffe, jetzt ist klar geworden, was ich meine. ;)
Ich denke schon, aber - wieso verwendest Du für Templates nicht eine wirklich gute, zuverlässige Klasse wie http://smarty.php.net/? Eval ist wie gesagt nicht ungefährlich!
Grüße
Andreas
Vielen Dank, Andreas für Deine Antwort.
Du liegst richtig, was da rauskommt, soll als PHP geparst werden. Das sowas mit eval möglich ist, wußte ich nicht. Wie soll denn ja jemand eigenen Code reinbekommen, das ganze läuft doch auf dem Server ab? Von PHP-Hacking habe ich aber schon gehört. Hacker sind allgemein gefährlich, egal wie gut man sich schützt. Aber Du hast natürlich recht, das es nicht ganz ungefährlich ist, wenn Sicherheitslücken drin sind.
Ich verwende keine Template-Klasse, weil es nicht direkt um Templates geht. In der Erklärung habe ich das nur als Beispiel genannt.
Konkret sollen alle Tags vom Muster <a id="foo">text</a> im HTML-Code gefunden werden. Anhand der id sollen Attribute wie href oder target aus einem Array (Link-Sammlung) geholt und im Tag verankert werden. Damit möchte ich eine zentrale Link-Verwaltung ermöglichen, damit sich bei Änderung alle Verweise der referenzierten ID automatisch aktualisieren... Das ginge im PHP-Skript zwar auch mit <a href="<?php print $foo ?>">text</a> aber es gibt auch viele statische Dateien, die ich nicht mit der Endung php speichern und entsprechend anpassen möchte. Da wo HTML ausreicht, möchte ich eben keinen PHP-Code drin haben. Daneben gibt es aber auch Dateien, die einzelne PHP-Codes enthalten und vorher durch den PHP-Interpreter müssen...