Am Besten wäre tatsächlich, wenn du die neuen Einträge an den Anfang der Textdatei packen würdest. Dann würde der neuste Eintrag immer automatisch oben erscheinen.
Lege dazu eine neue Textdatei an, in der du den neusten Eintrag speicherst, anschließend kopierst du die alten Einträge dann in die neue Datei.
Einziges Problem dabei: Falls mal zufällig zwei Leute gleichzeitig eine GB-Eintrag machen, könnte zwischen dem Neuanlegen und Kopieren ein Problem auftauchen. Da müsstest du einen Locking-Mechanismus einbauen der sicherstellt, dass immer beide Aufgaben erledigt sind, bevor das Skript erneut aufgerufen wird.
Die Lösung mit dem Einlesen der Einträge in ein Array geht natürlich auch. Hier könnte es nur zu Problemen kommen, falls du sehr viele Gästebucheinträge hast, weil die Array-Einträge ja im Arbeitsspeicher des Servers gehalten werden müssen.
Eine andere, auf den ersten Blick vielleicht etwas dümmliche Idee: Jeden Eintrag in eine eigene Datei speichern, und zwar gleich fertiges HTML, das du nur noch includen mußt.
Die Dateien nummerierst du schön durch - gb0.inc für den ersten, gb1.inc für den zweiten Eintrag und so weiter. In einer gesonderten Datei speicherst du nur wie viele Einträge es gibt.
Wenn auf einer Seite im GB z.B. immer x Einträge angezeigt werden und jemand möchte jetzt die n-te Seite sehen, dann liest du die Datei mit der Anzahl - sagen wir mal da steht 324 drin - und includierst ohne jede weitere Verarbeitung die Dateien gb<324-(x*(n-1))>.inc bis gb<(324-(x*n))-1>.inc.
Wird ein neuer Eintrag geschrieben, speicherst du ihn in gb<324+1>.inc und vermerkst 325 in der gesonderten Datei.
Der Ansatz hat zwei Tücken:
1. Speicherst du fertiges HTML, kannst du die Seite später nur mit viel Aufwand umgestalten. Aber kannst ja auch nur die Daten speichern und dein GB-Script füllt damit ein Template.
2. Bei extrem vielen Einträgen ... ach Quark, wenn du so viele erwarten würdest, hättest du dich für 'ne DB entschieden.
Der Ansatz hat zwei Tücken:
1. Speicherst du fertiges HTML, kannst du die Seite später nur mit viel Aufwand umgestalten.
so schlimm ist das garnicht. wenn du die einträge recht allgemein auszeichnest, mit hx-hy (name, überschrift), p(text, comment), ul (restliches) ... kann man per css ziemlich frei gestalten ...
Kommentar