Supportnet / Forum / Skripte(PHP,ASP,Perl...)
php gästebuch andersrum auflisten
Frage
hab ein simples gästebuch geschrieben..
welches sogar funktioniert..
allerdings listet es die einträge von 1 bis $letztereintrag, von oben nach unten auf.. das heisst der aktuellste eintrag ist ganz unten :-( ..
das würde ich gern "andersherum" haben!!
die php greift auf ein einfaches textfile zu, und die ausgabe erfolgt in einer while schleife..
.....
while(!feof($datei))
{
$nr++;
$zeile = fgets($datei, 1000);
$liste = explode("|",$zeile);
if($liste[1]==""){$liste[1]="eMail";}
if($liste[2]==""){$liste[2]="Homepage";}
if($liste[0]!=""&&$liste[3]!="")
{
echo "<br />";
echo "<img src='../fotos/linie.jpg' width='460' height='2'></img><br /><br />\n";
echo "<table width='60%' cellpadding='0' border='2' bordercolor='#000000' bgcolor='#c0c0c0' class='blau'><tr>";
echo "<td align='left' bordercolor='#c0c0c0'><p><span class='rot'>".$nr.". ".$liste[0]."</span> - ".$liste[1]."<a href=".$liste[2]." target=\"_blank\"><span class='rot'><br />".$liste[2]."</span></a><br /><br />".$liste[3]."</p>\n";
echo "</td></tr></table>";
}
}
fclose($datei);
}
.....
dank im voraus..
Antwort 1 von Nanuk
Hallo r...l...
das einzige, was mir einfällt ist der Vorschlag, schon bei den Eintragungen in Dein Gästebuch vor jedem Eintrag mit
int rewind();
an den Anfang Deiner Textdatei zu gehen und dadurch den neuen Eintrag vorn anzustellen.
Dadurch sollte das Umkehren der Anzeige gelingen...
Gruß
Nanuk
das einzige, was mir einfällt ist der Vorschlag, schon bei den Eintragungen in Dein Gästebuch vor jedem Eintrag mit
int rewind();
an den Anfang Deiner Textdatei zu gehen und dadurch den neuen Eintrag vorn anzustellen.
Dadurch sollte das Umkehren der Anzeige gelingen...
Gruß
Nanuk
Antwort 2 von Nessus
Du solltest das File rekursiv einlesen.
Lese hier mal weiter:
http://www.dclp-faq.de/q/q-datei-rueckwaerts.html
Warum arbeitest Du nicht mit einer DB?
Da geht es IMHO bedeutend einfacher.
HTH
Nessus
Lese hier mal weiter:
http://www.dclp-faq.de/q/q-datei-rueckwaerts.html
Warum arbeitest Du nicht mit einer DB?
Da geht es IMHO bedeutend einfacher.
HTH
Nessus
Antwort 3 von raben.lazarus
dank erstmal...
hmm...
rewind wär ne gute idee, aber leider nicht wenn ich im append "modus"
zeilen in der textdatei hinten anhänge.
dann ignoriert er anscheinend rewind
...guckst du...
http://www.php-center.de/de-html-manual/function.rewind.html
nessus tip muss ich mir erstmal anschauen ;-)
hmm...
rewind wär ne gute idee, aber leider nicht wenn ich im append "modus"
zeilen in der textdatei hinten anhänge.
dann ignoriert er anscheinend rewind
...guckst du...
http://www.php-center.de/de-html-manual/function.rewind.html
nessus tip muss ich mir erstmal anschauen ;-)
Antwort 4 von semi
Wie wäre es damit
Gruß,
Michael
$alleZeilen = file("dateiname");
array_reverse($alleZeilen);
...
dann spliten und ausgeben
Gruß,
Michael
Antwort 5 von raben.lazarus
ok dazu hab ich ne fragen...
bei ner datei kann ich mit "feof" prüfen
ob der zeiger am dateiende ist..
wie krieg ich das mit dem array hin??
also funktionieren tuts schon nur da es ja dynamisch sein soll müsste ich die grösse des index wissen..
bei ner datei kann ich mit "feof" prüfen
ob der zeiger am dateiende ist..
wie krieg ich das mit dem array hin??
also funktionieren tuts schon nur da es ja dynamisch sein soll müsste ich die grösse des index wissen..
Antwort 6 von semi
foreach ($alleZeilen as $zeile) {
$liste = explode("|",$zeile);
...
}oder
for($i=0; $i<count($alleZeilen); $i++) {
$zeile = $alleZeilen[$i];
$liste = explode("|",$zeile);
...
}Du könntest auch jede Zeile in ein Hashmap (assoziatives Array; array mit key-value) packen (nach split bzw. explode) und diese in einem weiteren Array speichern.
Danach könntest Du von mir aus alles nach der dritten Spalte sortieren.
(siehe usort, uksort etc. in PHP-Handbuch)
Gruß,
Michael
Antwort 7 von raben.lazarus
genial..tadellos..klappt.. vielen dank
wieder viel gelernt ;-)
wieder viel gelernt ;-)

