(Fast) Mahlzeit,
beim Durchstöbern des world wide webs bin ich auf folgendes interessante php-Skript gestossen, das generierte php-Seiten als html-Seiten in einem eigenen Cache ablegt und beim erneuten Aufruf auch aus diesem holt und neue hinzufügt:
<?php
// Dateiname ohne Endung "php" extrahieren
$filename = basename ($PHP_SELF,"php");
if (file_exists ("my_cache/" . $filename . "html"))
{
header ("Location:my_cache/" . $filename . "html");
}
else
{
ob_start();
?>
<html>
<body>
hier liegen jede Menge Datenbankabfragen etc.
</body>
</html>
<?php
//der Inhalt des Puffers wird in $content abgelegt
$content=ob_get_contents();
//eine Datei mit dem Namen "$filename.cache" wird im Cacheverzeichnis angelegt
$fh=fopen ("my_cache/".$filename."cache", "w");
//der Pufferinhalt wird in diese Datei geschrieben
fputs ( $fh, $content);
fclose($fh);
//die Datei wird auf ihren endgültigen Namen (Endung "html") umbenannt:
rename ("my_cache/".$filename."cache", "my_cache/".$filename."html");
ob_end_flush ();
}
?>
Ob's funktioniert oder nicht, kann ich nicht sagen, weil ich das Skript noch nicht ausprobiert habe.
Was mich aber wundert, ist die Struktur, da der "else"-Zweig zwar im ersten php-Abschnitt geöffnet, aber erst am Ende des zweiten php-Abschnitts wieder geschlossen wird, dazwischen steht (formalhalber) ganz normaler html-Code.
Ist dies eine gängige Notation oder irgendeine Besonderheit?
Welchen Sinn hat sie?
Gruß
Enrico