Newsscript, Einträge verschieben

mini_xs

Mitglied
Hallo!
Habe mir ein Newsscript auf der Basis einer Textdatei gebaut. In die Textfile werden die Einträge bereits mit der HTML Formatierung gespeichert, also nicht nur die Variablen + Werte oder ähnliches sondern Die gesamte Tabellenstruktur der News + den Text.
Diese Textdatei wird dann mit Include in den Bereicht für die News eingebunden.
Jetzt wäre es aber gut wenn nur die neuesten 3 Einträge in der Textfile sind, alle anderen sollen in eine Art Archivdatei verschoben werden.
Wie ist das am Besten zu realisieren?
Jedem Eintrag eine durchlaufende Markierung geben oder ähnliches?
Ist denn dieser Weg überhaupt sinnvoll, sprich soll ich nochmal neu anfangen und nur Variablen + die Werte in der Datei speichern?
Hab mir das Ganze etwas zusammengeschustert weil ichs umbedingt selber schreiben wollte. Bin mir aber jetzt nicht mehr so sicher ob das so gut war :rolleyes:.
Wenn ihr irgendwelchen Codeausschnitte braucht dann sagts, glaub aber ihr verteht wie ich das gemeint hab.
Links wären super, bin immer froh wenn ich ne Anleitung zum schmökern hab. Learning by doing :-).
Danke schonmal!!!
 
Du könntest es z.B. so machen, dass zwar alle News in der Datei gespeichert werden, aber eben nur die ersten 3, den Rest kann man mit einem Klick auf Archiv o.Ä. ansehen.

Zweite Möglichkeit, wäre Jeweils die 4. ein eine extra Datei zu verschieben.

Für beide Lösungen müsstest du aber die einzelnen News-Beiträge durch eine Zeichenkette trennen, beispielsweise: ##break##

Dann kannst du mit:
PHP:
$entries = explode("##break##", implode("", file("datei.txt")));
Alle Einträe in jeweils ein Element des Arrays entries speichern.


Ich würde die 1. Methode empfehlen, da sie aus meiner Sicht etwas einfacher zu realisieren ist:
PHP:
<?php
$entries = explode("##break##", implode("", file("datei.txt")));
$entries = array_reverse($entries);  # Falls sich die neusete News am
                                     # Ende der Datei befindet
if (count($entries) <= 3) {
    foreach($entries as $news) echo $news."<br><br>";
} else {
    for ($i=0; $i<3; $i++) {
        echo $entries[$i]."<br><br>";
    }

    ?><
    <br><br><br>
    <a href="archiv.php">[ Archiv ]</a>
    <?php
}


#Und die archiv.php
$entries = explode("##break##", implode("", file("datei.txt")));


$entries = array_reverse($entries);  # Falls sich die neusete News am
                                     # Ende der Datei befindet


unset ($entries[0], $entries[1], $entries[2]);

foreach ($entries as $news) echo $news."<br><br>";

hth
 
Okay, Danke!!!!
Das ganze klingt durchführbar und ich werds mal versuchen :-). Werde mich melden ob es funktieoniert hat.
Danke!!!!
 
Also,
habs so versucht, noch das array_reverse rausgemacht (hab mich echt ne minute gewundert warum die neuesten im archiv sind, und das obwohls ja in der beschreibung drinstand *gg*) und es funktioniert einwandfrei.
Vielen Dank für die promte und kompetente Hilfe!!
Gruß
Stefan
 
Zurück