php => datei erzeugen
Harald
- php
Hi!
Kann ich per php eine html-datei am server erzeugen?
=> Wenn ich die php-datei ausführe schreibt mir php eine *.htm auf den server
danke
harald
Hi!
Kann ich per php eine html-datei am server erzeugen?
=> Wenn ich die php-datei ausführe schreibt mir php eine *.htm auf den serverdanke
harald
Hallo,
es wäre ziemlich hilfreich, deinen Code auch zu sehen...
Prinzipiell kannst du natürlich fast jede Art von Datei durch PHP
erzeugen lassen.
Gruss
Dieter
naja, ich hab eine php-datei die mehrere ähnliche Info-Seiten erstellt (code is aber egal und irsinnig lang). Damit ich aber in google bessere ergebnisse erreiche möchte ich diese Seiten als html abspeichern. Jetzt wollte ich anfangs die Seiten alle händisch öffnen & abspeichern, bis mir dann eingefallen ist, dass das doch (vielleichT)auch das php machen könnte. Daher meine Frage: Wie kann ich html-code-zeilöen in eine htm-datei abspeichern lassen?
vielen Dank
Harald
Hallo Harald,
wenn ich deine Frage richtig verstehe, willst du also mit php eine textausgabe in eine Datei lenken:
$datei = fopen($dateiname,"w+");
fwrite($datei, $deininhalt);
fclose($datei);
Mit dem Argument "w+" wird die Datei die in Dateiname definiert ist
(z.B. "test.htm") geöffnet, oder, falls diese noch nicht vorhanden
ist, angelegt. Der Content ($deininhalt) wird dann in die Datei
geschrieben (fwrite) und anschließend die Datei geschlossen (fclose).
Gruss
Dieter
Oh, so einfach is das *freu*
danke :-)
Hallo Freunde des gehobenen Forumsgenusses,
$datei = fopen($dateiname,"w+");
fwrite($datei, $deininhalt);
fclose($datei);
Hier fehlt die Fehlerbehandlung, man muss testen ob die Datei auch wirklich geöffnet wurde, ob so viele Bytes in die Datei geschrieben wurden wie der zu schreibende Inhalt lang ist und ob die Datei wirklich korrekt geschlossen wurde. Ansonsten bekommt man u.U. Warnungen.
Gruß
Alexander Brock
--

[V-Text-Categorizer - Ein Klasse in PHP, die Text anhand von Statistiken über Texte in Kategorien sortiert (z.B. in Spam und nicht-Spam).](http://alexanderbrock.de/v-text-categorizer/)
hi!
ehm...kannst du darauf näher eingehen?
Was genau soll ich da noch machen?
thx
harald
Hallo Freunde des gehobenen Forumsgenusses,
Prinzipiell kannst du natürlich fast jede Art von Datei durch PHP
erzeugen lassen.
Man kann jede Art von Datei mit PHP erzeugen.
Gruß
Alexander Brock
Hallo,
... und dann schau Dir auch nochmal die Buffer-Funktionen an
http://de2.php.net/manual/en/function.ob-start.php
Damit kannst Du dann die normalerweise für den Browser (Standardausgabe) erzeugte Datei abfangen und mittels der Dateifunktionen an eine Datei auf dem Datenträger senden.
LG
Chris
Hi!
hmmm...sieht echt interessant aus, dann könnt ich mir einiges sparen (echo umschreiben...)
aber um ehrlich zu sein bin ich mir nicht sicher ob ich das ganz kapier *g*
wäre das richtig, wenn ich "hallo, das ist ein html-text, der auch teils in php erstellt wurde" in eine neue datei namens "test.htm" schreiben will?
[code:php]
<?php
ob_start();
?> hallo, das ist ein html-text, <?php echo "der auch teils in php erstellt wurde";
ob_end_flush();
$data = ob_get_contents();
ob_end_clean();
$datei = fopen("test.htm","w");
echo fwrite($datei, $data,10000);
fclose($datei);
?>
[/code]
thx
harald
Hallo,
<?php
ob_start();
?> hallo, das ist ein html-text, <?php echo "der auch teils in php erstellt wurde";
$data = ob_get_contents();
ob_end_flush();
#oder
ob_end_clean();
$datei = fopen("test.htm","w");
echo fwrite($datei, $data);
fclose($datei);
?>
So müsste das klappen.
LG
Chris
Hallo :-)
<?php
ob_start();
?> hallo, das ist ein html-text, <?php echo "der auch teils in php erstellt wurde";»» ob_end_flush(); Hier zu früh!
$data = ob_get_contents();
und hier wahlweise eben
ob_end_flush();
#oder
ob_end_clean();
#dann hat dort ein user bei www.php.net einen fehler gemacht...
denn ob_end_flush() leert den Buffer und gibt ihn an den Browser aus, und ob_end_clean() leert den Buffer ins Dev NUL. Beide beenden die Ausgabeunterbrechnung.
$datei = fopen("test.htm","w");
echo fwrite($datei, $data);
fclose($datei);
?>So müsste das klappen.
geht das für die nicht so erfahrenen(=> mich) nochmal in Reinform *G*
thx
harald
Ha Ha (Hallo Harald) *scnr*
warum is das hier zu früh, wo gehört es denn hin?
Zitat:
ob_end_flush -- Flush (send) the output buffer
and turn off output buffering
Wenn Du also das flush direkt vor dem Auslesen den Buffers durchführst, waw wird denn wohl in Deiner Datei auf der Platte nachher drinstehen?
Unter "Senden" versteht man hier die Ausführung des eingestellten Ausgabe-Handlers, also normalerweise die Leerung des Buffers in Richtung Standard-Ausgabe-Kanal.
LG
Chris
also:
<?php
ob_start();
?> hallo, das ist ein html-text, <?php echo "der auch teils in php erstellt wurde";
$data = ob_get_contents();
ob_end_flush();
$datei = fopen("test.htm","w");
echo fwrite($datei, $data);
fclose($datei);
?>
passt das?
thx
Harald