PHP interpretiert auslesen

Hallo zusammen,

ich würde gerne eine PHP-Datei von meinem Webspace auslesen und in einer weiteren dann weiter verwenden.
Die erste Datei gibt einen JSON-String aus.
Doch wenn ich die Datei über fopen() oder file_get_contents() einbinden bekomme ich ja nur den “rohen” PHP-Code und nicht die Ausgabe. Und da hier ja leider allow_url_open ausgeschaltet ist weiß ich nicht wie ich das hinbekommen kann.

Kann mir einer dabei helfen?

Schon Danke im Vorraus

Du willst nicht Quelltext sondern Programmausgabe lesen?
Warum übernimmst du den Quelltext nicht dahin wo du ihn brauchst?

das wäre recht interessant, beispielsweise, wenn man unterseiten mit einer suchfunktion beackern will.

fände ich auch interessant :wink:

[quote]Du willst nicht Quelltext sondern Programmausgabe lesen?
Warum übernimmst du den Quelltext nicht dahin wo du ihn brauchst?[/quote]

Ich habe vor eine API zu schreiben, welche auf Anfrage alle nötigen Informationen aus der Datenbank holt und als JSON-String zurückgibt. Also so, dass sie von allen möglichen Programmen, egal ob Webseite oder Windowsanwendung, benutzt werden kann.

Da ich die API so allgemein wie möglich halten möchte wäre es am Besten, wenn ich die verarbeitete Seite (also den JSON-String) benutzen könnte.

In solchen Fällen ist es gut das du keinen url Zugriff hast^^ :ps:
Noch unperformanter fiel es dir nicht ein oder?

Wenn man Sachen in mehrere PHP Dateien verfrachten muss [size=85](betont „muss“ da mehr Dateien = langsamer da unnötig extra I/O Zugriffe, und die wenigsten haben nen PHP optimizer…)[/size], dann kann man das auch machen und diese in anderen PHP Scripts via php.net/include auch includen^^ Das geht auch in deinem Fall^^ Entweder passt du dein Script so an das es wahlweise extern oder intern genutzt wird, oder du machst es unsauber via ob_start(), include(), ob_get_contents(), ob_end_clean()
Solltest aber am besten intern nicht mit JSON arbeiten^^ Sondern das nur extern so nutzen wenn es nicht anders geht.

Sowas läuft ja im Normalfall über irgendein Protokoll, im simpelsten Falle HTTP.

Für Anwendungen und Webseiten, die HTTP-Requests machen können, ist also nichts weiter nötig.

Wenn du das auch hier auf bplaced innerhalb deines eigenen Webspace nutzen willst, wo du kein HTTP nutzen kannst - da wirst du dann include/require verwenden müssen.
Das ist auch möglich, wenn du einen zusätzlichen Parameter übergibst, der das Script anweist, in diesem Falle bspw. einen Rückgabewert zu liefern, statt eine Ausgabe zu machen:

[code]// include.php:
$foo = whatever();
return $foo;

// hauptscript:
$var = include ‘include.php’;[/code]
Dabei musst du aber natürlich berücksichtigen, dass das Script dann im Scope des Hauptscriptes läuft, und dass du auf diesem Wege keine GET-Parameter übergeben kannst (include ‘include.php?xyz=abc’ funktioniert nicht, da das ganze im Dateisystem stattfindet).
Du musst also im Hauptscript dafür sorgen, dass die vom include-Script benötigten Variablen mit den entsprechenden Werten belegt sind.

Und das eben nicht nur limitiert auf GET, er kann auch die $_SERVER[] Variablen ändern und z.B. die Request URI, UserAgent etc. anpassen. Sein Script muss also nicht zwingend wissen das es included ist… [size=85](wenn gleich man das dennoch feststellen kann)[/size]

Ok. Vielen Dank.
Ich denke mit dem includen sollte es funktionieren. War wohl zu einfach um selbst darauf zu kommen…

[Edit]
Wo kann ich das Thema als ‘erledigt’ markieren?

Die schöne Variante wäre es wohl eine PHP-API zu bauen, die dann die Daten bereitstellt.
Dann machst du eine PHP-Datei, die das ganze als JSON weitergibt, oder du verwendest die Funktionen intern um die Daten selbst zu verarbeiten.

PHP-Ausgabe abzufangen ist allerdings auch kein Problem: