Aus PHP generierte HTML-Datei speichern
Graphity
- webserver
0 Fade0 Graphity
0 Stephan Huber0 Henryk Plötz
Hallo Cracks
Erstmal: Ein frohes neues (ich weiß ich bin spät dran, aber das ist mein erstes posting dieses Jahr)
Ich würde gerne Seiten, die durch PHP aus einer MySQL-DB erzeugt wurden, auf dem Server speichern. Der Grund ist einfach. Es soll ein Archiv entstehen. Dazu zählt einerseits die Datenbank und, praktisch zur redundanz, die Seiten, die durch Daten aus der Datenbank generiert wurden. Außerdem ist das Archiv dadurch "transportabel". Und vor allem ansehlicher als eine Datenbank, falls die Quelltexte mal flöten gehen...
Ich benutze einen Apache Server auf Win32 (2000).
Ist das möglich, oder muß ich mir in den A**** beissen?
cu
Graphity
Hallo,
Hallo Cracks
Erstmal: Ein frohes neues (ich weiß ich bin spät dran, aber das ist mein erstes posting dieses Jahr)
Ich würde gerne Seiten, die durch PHP aus einer MySQL-DB erzeugt wurden, auf dem Server speichern. Der Grund ist einfach. Es soll ein Archiv entstehen. Dazu zählt einerseits die Datenbank und, praktisch zur redundanz, die Seiten, die durch Daten aus der Datenbank generiert wurden. Außerdem ist das Archiv dadurch "transportabel". Und vor allem ansehlicher als eine Datenbank, falls die Quelltexte mal flöten gehen...
Ich benutze einen Apache Server auf Win32 (2000).
Ist das möglich, oder muß ich mir in den A**** beissen?
Vielleicht kannst Du damit was anfangen...
$content = "Inhalt, der in die Datei soll";
$myfile = "dateixyz.html"; // Datei, die erzeugt werden soll
if($file=fopen($myfile, "w")) { // Datei zum Schreiben oeffnen
// wird erzeugt, falls noch
// nicht vorhanden
fwrite($file, $content); //Inhalt schreiben
}
print $content; // Ausgabe des Contents im Browser
Gruß,
Fade
Aha.. das bringt mich schonmal weiter... danke.
Wird bloß schwierig eine komplette HTML-Datei in eine Variable zu schreiben, insbesondere, wenn die HTML-Datei aus PHP generiert wird... am besten wär's doch eigentlich die Temporäre Datei herauszufinden und diese Datei dann eben durch fopen in die Variable zu schreiben, oder?
cu
Graphity
Hallo Graphity,
Ist das möglich, oder muß ich mir in den A**** beissen?
Wenn Du php4 hast, kannst Du die Output-Control-Functions benutzen, ein Tutorial:
http://www.phpbuilder.com/columns/argerich20010125.php3
Viele Grüße
Stephan
Moin
Ist das möglich, oder muß ich mir in den A**** beissen?
Ja, das ist möglich:
Variante 1: Du benutzt fopen() mit den URL Wrappern (http://www.php.net/manual/en/features.remote-files.php). Ach ich seh grad: Streich das, Windows ist zu blöd dafür :-(
Variante 2: Du benutzt die Output Buffering Features wie Stephan sagte:
<?php
ob_start();
// Hier kommt der Rest deiner PHP-Datei mit allem drum und dran
$dateiinhalt=ob_get_contents(); // Da ist jetzt alles was ausgegeben werden würde, drin
$fh=fopen("archivdatei", "w");
fwrite($fh,$dateiinhalt);
fclose($fh);
// Du kannst jetzt wahlweise das Buffering beenden und den Inhalt doch noch senden:
ob_end_flush();
/* Oder du beendest das Buffering und verwirfst den Inhalt, dann solltest du noch eine kleine Meldung ausgeben
ob_end_clear();
?> <html><head><title>Datei erstellt</title></head><body>Die Archivdatei wurde erstellt</body></html>
<?php
*/
?>
Variante 3: Du nimmst Variante 1 ohne die Wrapper und holst dir den Inhalt zu Fuß beim Server ab. Bei http://www.php.net/manual/en/function.fsockopen.php sind unter den User-Comments einige Beispiele dazu zu finden. Achte darauf keine Endlos-Schleife zu bauen indem dein Skript sich selbst aufruft...
Zu http://forum.de.selfhtml.org/?m=11598&t=2033: Es wird keine temporäre Datei bei PHP-Ausgaben generiert, das ist ja das schöne.
--
Henryk Plötz
Grüße aus Berlin