PHP-Seite mit DB Inhalten als HTML simulieren

Hallo zusammen!

Erstmal Entschuldigung für die Überschirft. Allerdings ist mir keine passendere Kurzbeschreibung für mein Problem eingefallen.

Situation:
Generell will ich mir eine Suchmaschine basteln. Nun steh ich vor einem Hauptproblem. Meine Seite besteht aus einem Mix aus HTML und PHP-Code. Die Seiten mit PHP-Code werden dynamisch mit Inhalten aus einer DB gefüllt.

Das Auslesen der HTML-Seiten über fgestss(datei.html) ist kein Problem.
Das Auslesen der PHP-Seiten über fgetss(http://www…/datei.php) würde auch funktionieren, allerdings mit erheblichen Performanceeinschränkungen.

Nun meine Frage:
Gibt es eine Möglichkeit die PHP-Seiten intern zu simulieren, so dass sie als HTML-Quellcode für das System zur Verfügung steht?

Thx im Voraus

Greetz
Mike

Hallo,

Das Auslesen der HTML-Seiten über fgestss(datei.html) ist kein
Problem.
Das Auslesen der PHP-Seiten über
fgetss(http://www…/datei.php) würde auch funktionieren,
allerdings mit erheblichen Performanceeinschränkungen.

ähh? wie jetzt?
Also normalerweise gibt dir doch jedes PHP-Script auch HTML-Code zurück, sofern es nicht lokal gelesen wird? (sprich include(…)).

Was mir grad noch einfällt, kanns sein, dass du in deiner Datenbank PHP-Code stehen hast? Ergibt meiner Meinung nach wenig sinn, also bitte ein paar mehr Informationen :smile:

bye
Christoph

ähh? wie jetzt?
Also normalerweise gibt dir doch jedes PHP-Script auch
HTML-Code zurück, sofern es nicht lokal gelesen wird? (sprich
include(…)).

Was mir grad noch einfällt, kanns sein, dass du in deiner
Datenbank PHP-Code stehen hast? Ergibt meiner Meinung nach
wenig sinn, also bitte ein paar mehr Informationen :smile:

bye
Christoph

Hallo!

Ok ich merke, meine Problembeschreibung war nicht eindeutig,…, sry. Ich probiers nochmal:

In der DB stehen nur Texteinträge. -> vernachlässigbar

Mein Problem hat nur mit der PHP-Datei zu tun.

In meinem PHP-Code stehen nur DB-Aufrufe, und eine Standardkonvertierung der Inhalte.

Mein Ziel ist es den generierten HTML-Code dieser PHP-Datei in mein System als String zu integrieren. Da ich nur über diesen in meiner Suchmaschine laufen will bzw. muß. :smile: Es kann weiter eine Übergabe von Parametern vorkommen. z.B. datei.php?ID=1

Eine Möglichkeit dieses Problem zu umgehen habe ich über einen Aufruf der Fkt fgets('http://www.domain.de/datei.php’,xxxx). Allerdings bekomme ich da ein riessiges Performanceproblem.

Ich suche eine Fkt. die mir ermöglicht die Datei ‚datei.php‘ lokal auszuführen, bzw mir den generierten HTML-Code zurückliefert.

Ich hoffe, dass meine Problembeschreibung nun etwas klarer geworden ist :smile:

Greetz
Mike

Hallo,

Eine Möglichkeit dieses Problem zu umgehen habe ich über einen
Aufruf der Fkt fgets('http://www.domain.de/datei.php’,xxxx).
Allerdings bekomme ich da ein riessiges Performanceproblem.

Ich suche eine Fkt. die mir ermöglicht die Datei ‚datei.php‘
lokal auszuführen, bzw mir den generierten HTML-Code
zurückliefert.

Wie hab ich das jetzt zu verstehen? Wenn du was von einem fremden Server herunterlädst ist das natürlich ein Performanceproblem, da alles von dieser vorausgehenden Verbindung abhängt. Eine Lösung wäre es so wie google zu machen. Ein unabhängiges Programm machen, das die Seiten vorher durchfährt, denn bei PHP sind threads zum warten (falls es sowas dort gibt) recht nutzlos. - Und ich bin hier vollkommen am Thema verbeigeschossen.

Aber wie gesagt, wenn du etwas von einem anderen Server lädst, gibts keine Möglichkeit, dies schneller zu machen. (Abgesehen vom Cachen, falls du die selbige Seite schonmal hattest)

bye,
Christoph

Hallo!

Also ich habe eine PHP-Datei auf meinen Webspace. Diese nenne ich nun ‚datei.php‘.
‚datei.php‘ enthält DB-Abfragen und eine Konvertierungsfunktion.
Wenn ich nun die Datei mit ‚datei.php?ID=1‘ aufrufe, wird ein HTML-Code generiert, der den Inhalt der Table mit den PRI = 1 besitzt.
Soweit ist das ja absolut trivial.

Nun will ich den in ‚datei.php?ID=1‘ generierten HTML-Code in eine anderen Datei ‚suche.php‘ integrieren. Beide liegen auf der selben Domain und Webspace.
Eine Möglichkeit den in ‚datei.php?ID=1‘ generierten HTML-Code in ‚suche.php‘ zu intergrieren wäre :
$needed_String = fgets('http://www.meineDomain.de/datei.php?ID=1’,9999);

$needed_String beinhaltet nun den generierten HTML-Code der Datei ‚datei.php?ID=1‘.

Dieser Weg würde funktionieren, allerdings mit Performanceproblemen.

Ich suche eine Möglichkeit, das gleiche Resultat zu generieren, ohne dass ich erst über http://www.meineDomain.de/… sonderen über das „lokale System“ auf den Inhalt komme.

Ich hoffe, dass ich es nun verständlich ausgedrückt habe. :smile:

Greetz
Mike

Anmerkung: ID kann natürlich variabel sein.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Ich suche eine Möglichkeit, das gleiche Resultat zu
generieren, ohne dass ich erst über
http://www.meineDomain.de/… sonderen über das „lokale
System“ auf den Inhalt komme.

also jetzt hab ichs auch mal kapiert :smile:

Leider gibts meiner Meinung nach da nur eine Lösung: Sauberen und möglicherweise Klassenbasierten code schreiben, dass du die Funktionen der datei.php einfach in suche.php weiterverwenden kannst. Is zwar ein bisschen aufwandiger (oder mit ä?), aber dann auch um einiges einfacher zu lesen. Du solltest also in datei.php mit deinen Funktionen die Möglichkeit geben, das Ziel des Outputs festzulegen. Es muss also egal sein ob nun in einen String oder wie sonst STDOUT (o. console) geschrieben wird.

Ich hoffe das hilft dir weiter :smile:

bye
Christoph

Hallo Mike !

Mein Ziel ist es den generierten HTML-Code dieser PHP-Datei in
mein System als String zu integrieren. Da ich nur über diesen
in meiner Suchmaschine laufen will bzw. muß. :smile: Es kann weiter
eine Übergabe von Parametern vorkommen. z.B. datei.php?ID=1

ob\_start();
include("datei.php");
$html = ob\_get\_contents();
ob\_end\_clean();

Alexander

Hallo!

Nur dass ich das jetzt richtig verstehe:

Ich muß also die vollständige Funktionalität von ‚datei.php‘ in eine oder mehereren Klassen schmeissen. Eine Funktion, die mir den kompletten HTML-Code bildet und zurückgibt, hinufügen. Und dann über diesen String weiterarbeiten.
Das wollte ich eigentlich auch verhindern, aber so wie es aussieht muss es dann wohl doch so laufen. :frowning:(
Komme ich da eigentlich nicht in Probleme mit der Stringmaximalgröße? Liegt glaub ich bei 2Kb.

Thx für deine Bemühungen! War wahrlich eine schwere Geburt :smile:)

Greetz
Mike

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Nur dass ich das jetzt richtig verstehe:

Ich muß also die vollständige Funktionalität von ‚datei.php‘
in eine oder mehereren Klassen schmeissen. Eine Funktion, die
mir den kompletten HTML-Code bildet und zurückgibt, hinufügen.
Und dann über diesen String weiterarbeiten.
Das wollte ich eigentlich auch verhindern, aber so wie es
aussieht muss es dann wohl doch so laufen. :frowning:(
Komme ich da eigentlich nicht in Probleme mit der
Stringmaximalgröße? Liegt glaub ich bei 2Kb.

Thx für deine Bemühungen! War wahrlich eine schwere Geburt :smile:)

Greetz
Mike

Hallo,

Es wäre zumindest eine saubere Lösung, die von Alexander (paar posts drüber) kannst du auch probieren. Ich kann dir auch nur rein logisch helfen, weil ich wenndann immer nur cgi (c++) programmiere und nie php :smile:

bye
Christoph

Hallo Alexander!

Danke für den Code! Funkt einwandfrei!

Greetz
Mike

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo !

Komme ich da eigentlich nicht in Probleme mit der
Stringmaximalgröße? Liegt glaub ich bei 2Kb.

Es gibt keine maximale Stringgröße in PHP, die Größe ist nur durch den zur Verfügung stehenden Speicher begrenzt (memory_limit in der php.ini, default 8 MB).
Ganze Files in einen String einlesen ist also theoretisch auch kein Problem, wird nur ggfs. furchtbar langsam…

Alexander