Homepage selbermachen 7.851 Themen, 35.616 Beiträge

An die Insider PHP - Seite statisch machen

Der_Milchmann / 15 Antworten / Flachansicht Nickles

Hallo,

ich habe eine Seite, die aus einer counter Tabelle Tausende von Daten ausliest (MySQL) - .soweit alles klar. allerdings wird die tabelle von hunderten von usern täglich mehrmals ausgelesen, das alles auch noch abends, daher soll die tabelle lediglich beim ersten aufruf aktualisiert werden - also einmal am tag.


Bevor ich anfange, wollte ich fragen, ob ich einen Denkfehler mache. Folgenden Workflow habe ich vor:


  • Morgends wird die Tabelle das erste mal aufgerufen...
  • in einer separaten textdatei liegen 2 Datumsangeben vor - eine vom letzten Aufruf und das aktuelle Datum.
  • Beide Datumsangaben (z.b. der form 2004-05-24) werden verglichen und wenn der Tag des letzten Aufrufs älter ist als der aktuelle, so wird die Textdatei geupdatet und erhält nun in Zeile 2 die Info, dass das Datum HEUTE den letzten Aufruf zeigt, die Textdatei sieht nun also so aus: 2004-05-24 (Zeile1) und das gleiche Datum auch in zeile2
  • Textdatei wird also geupdatet und weiter gehts
  • das richtige Script wird abgearbeitet, das dauert eben beim ersten mal länger und der komplette statische code wir mit fwrite etc in eine Text/HTML Datei geschrieben, die dann statisch vorliegt.
  • Wenn jetzt der Zweite user kommt, wird die Textdatei wieder aufgerufen
  • Jetzt aber werden die 2 Zeilen der Textdatei wieder verglichen und festgestellt, dass das Datum gleich ist, das Script also schonmal aufgerufen wurde.
  • in diesem Falle rutscht die IF Klausel weiter und statt dem eigentlichen Script, wird dieses nicht abgearbeitet, sondern die statische textdatei aufgerufen, was natürlich jetzt wesentlich weniger den server durchrütteln lässt.



Frage: Geht das in Ordnung (technisch habe ich keine Fragen, was den oben angegebenen Workflow angeht) nur obs logisch ist und klappen könnte, ist noch fraglich.

Gruss Milchmann
-----------------------------------Zu Hartz4 kann ich nur sagen, dass ich froh bin, dass ich einen Job habe
bei Antwort benachrichtigen
xafford Der_Milchmann „Nachtrag - klappt nicht“
Optionen

Okay, hier mal ein schematischer Ansatz, wie ich es lösen würde.
Erst einmal ist es sinnvoll (in meinen Augen) das ganze in zwei (bzw 3 mit den Inhalten) aufzuteilen.

datei 1 (Entschedatei)
$sNow=date("j",time());
$sFileDate=date("j",filetime("inhalt.txt"));
if($sNow==$sFileDate)
{
include("inhalt.txt");
}
else
{
include("generate.php");
}

Datei2 (Datei generieren und einbinden):
// Daten aus der Datenbank holen und in String packen (Logik kenne ich nicht
$sInhalt="dein Inhalt";
if($fp=fopen("inhalt.txt","w"))
{
flock($fp,2);
fwrite($fp,$sInhalt);
flock($fp,3);
fclose($fp);
include("inhalt.txt");
}
else
{
// Fehlerbehandlung
}

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen