Sönke Tesch: Daten aus *.txt Anzeigen

Beitrag lesen

Ich habe ein Newsscript das aus drei Dateien besteht erstens die Datei datenbank.txt, zweitens die news.php und index.php .
Die News einzutragen Funzt einwandfrei bis auf das ein neuer Eintrag als letztes angezeigt wird.
Kann man etwas machen das die Einträge mit dem neusten beginnend angezeigt werden ?

Und hier der Quelltext

Es gibt zwei Fehler, die man bei einer Frage machen kann:

1. Man vergisst, Quelltext anzugeben und macht aus der Frage ein Ratespiel. Ich find's klasse, daß du das nicht gemacht hast.

2. Man kopiert einfach von HTML-Dateien, Style-Sheets bis zu Mamas Einkaufszettel mit den Spreewälder Gurken alles mögliche und unmögliche in der Hoffnung, irgendwo wird da schon der Fehler sein.
Aus dem Ratespiel wird dann ein heiteres Suchspiel, auf das wahrscheinlich genausoviele Lust haben, wie auf das Ratespiel.

Quelltext Datei news.php :

<head>
<title>news</title>
<style type="text/css">

[Das meiste vom CSS gelöscht..]

-->                                                <img src="grafic/dskhppsp_5x1.jpg" width="553" height="74" border="0" alt="">

[..und gewundert, was dass denn wohl werden soll, so mitten im Stylesheet-Bereich?]

</style>
</head>

<table width="471">

[Und das hier erst..]

<!-- One News Entry -->
<tr>
<td class="rank">
.:]- [HoE] Hell on Earth News -[:.
</td>
</tr>
</table>

<body bgcolor="000000">

[..wo der Inhalt doch erst hier anfängt.]

<script language="Javascript1.2">

[Javascript ist wohl für die Frage auch unwichtig]

<body bgcolor="000000">

[Hoppla, ein Déja-vu?!]

<script language="Javascript1.2">

[Noch mehr uninteressantes Javascript..]

<!-- Begin Table -->

[Das Teewasser kocht, jetzt wird interessant!]

<table width="471">
<?php
$dn="datenbank.txt";
$dz=fopen($dn, "r");
$zeile=1;
while (!feof($dz)) {
$ausgabe=fgets($dz,80);
echo "<b>" .$ausgabe . "<br>";
$zeile+=1;
}
fclose($dz);
?>
</table>

So. Es hätte gereicht, wenn du geschrieben hättest, daß du deine Neuigkeiten zeilenweise in der Datei datenbank.txt hast, die neuesten immer hintendran, und diese dann auch zeilenweise wieder ausgibst.

Was du also machen mußt, ist deine datenbank.txt von hinten aus auszulesen. Das ist etwas schwierig, deshalb machst du es ein klein wenig anders, es gibt eine praktische Funktion namens file():

1. Mittels der Funktion file() liest du datenbank.txt in ein Feld ein, wobei jede Zeile eine Reihe im Feld ist.

2. Mittels der Funktion array_reverse drehst du das ganze Feld um.

3. Mittels einer Schleife gibst du den Inhalt dieses umgedrehten Feldes aus.

Wobei man 2 und 3 eigentlich auch gleich zusammenfassen kann: Einfach in einer for-Schleife das Feld von hinten nach vorne auslesen.

Gruß,
  soenk.e