hi,
hier mein Script:
Code:
<?php
$srcurl = "http://meine.Domain.de/phpBB2/portal.php"
$tempfilename = "tempportal.html";
$targetfilename = "portal.html";
?>
<html>
<head>
<title> Erzeugung von <?=$targetfilename?> </title>
</head>
<body>
Erzeuge <?=$targetfilename?>...</p>
<?php
// Wir loeschen zunaechst die temporaere Datei,
// falls diese noch herumliegt. Falls sie schon
// geloescht wurde, gibt das eine Fehlermeldung,
// daher benutzen wir @, um sie zu unterdruecken.
@unlink($tempfilename);
// Wir laden die dynamische Seite, indem wir sie
// mit einer URL anfordern. Das PHP wird durch den
// Webserver verarbeitet, bevor wir es empfangen
// (weil wir uns im Prinzip verhalten wie ein Webbrowser). Was wir daher erhalten,
// ist eine statische HTML-Seite. Das 'r' gibt an, dass wir
// aus dieser "Datei" nur lesen wollen.
$dynpage = fopen($srcurl, 'r');
// Auf Fehler pruefen
if (!$dynpage) {
echo("Kann $srcurl nicht laden. ".
"Aktualisierung der statischen Seite abgebrochen!</</p>");
exit();
}
// Einlesen der URL-Inhalte in eine PHP-Variable.
// Festlegen, dass wir bis zu 1 MB Daten lesen
// wollen (nur falls etwas schief geht).
$htmldata = fread($dynpage, 1024*1024);
// Verbindung zur Quell-"Datei" schließen, jetzt,
// wo wir damit durch sind.
fclose($dynpage);
// Temporaere Datei oeffnen (und sie dabei
// erzeugen); Vorbereitung, hineinzuschreiben
// (beachten Sie das 'w')..
$tempfile = fopen($tempfilename, 'w');
// Auf Fehler pruefen
if (!$tempfile) {
echo("
Kann temporäre Datei ".
"($tempfilename) nicht zum Schreiben öffnen. ".
"Aktualisierung der statischen Seite abgebrochen!</p>");
exit();
}
// Daten für die statische Seite in die
// temporaere Datei schreiben
fwrite($tempfile, $htmldata);
// Temporaere Datei schließen, jetzt,
// wo wir mit dem Hineinschreiben fertig sind.
fclose($tempfile);
// Wenn wir so weit gekommen sind, wurde die
// temporaere Datei erfolgreich geschrieben,
// und wir koennen sie jetzt über die statische Datei kopieren.
$ok = copy($tempfilename, $targetfilename);
// Zum Schluss loeschen wir die temporaere Datei.
unlink($tempfilename);
?>
Statische Seite wurde erfolgreich aktualisiert!</p>
</body>
</html>
Es soll ein "Screenshot" einer dynamischen Seite gemacht werden, das diese ersetzt und so die MySql abfragen minimieren soll.
Stichwort: "halb-dynamische Seiten"
Jetzt werden die Quelldateien nicht vollständig eingelesen, bzw nicht komplett geschrieben.
Manchmal ist bei 2kB schluss (google.de, heise.de etc), bei mir persönlich bei 2Byte, auf dem selben Server bei 6kB. Woran kann das liegen?
Ein Schreib-/Lese-Buffer oder Einstellungen auf dem Server?