Zirp: Gästebuch auslesen

Hi

wie kann ich aus einem normalen Gästebuch das die einträge als txt (dat)datei speichert so einstellen das die neusten einträge als erstes ausgelesen werden

<?
$datenbank = "daten.dat";
$datei = fopen($datenbank,"r");
fpassthru($datei);
?>

mein php befehl zum auslesen

Zirp

  1. Moin Zirp,

    wie kann ich aus einem normalen Gästebuch das die einträge als txt (dat)datei speichert so einstellen das die neusten einträge als erstes ausgelesen werden

    Versuche das mal

    $fp = fopen('gaestebuch.txt', 'r');
    $input .= "$text\n  ";

    while (!feof($fp)) {
    $input .= fgets($fp, 512);
    }
    fclose($fp);
    $fp = fopen('gaestebuch.txt', 'w+');
    fputs($fp, $input, strlen($input));
    fclose($fp);

    regds
    Wiz

  2. Hallo Zirp,

    wie kann ich aus einem normalen Gästebuch das die einträge als txt (dat)datei speichert so einstellen das die neusten einträge als erstes ausgelesen werden

    <?
    $datenbank = "daten.dat";
    $datei = fopen($datenbank,"r");
    fpassthru($datei);
    ?>

    Ohne die Angabe über das Datenmodell Deiner Textdatei kann man da keine vernünftige Aussage treffen.

    Wenn Du allerdings dafür gesorgt hast, dass in jedem Datensatz der Textdatei nur ein LF (als Satzendezeichen) drinsteht, dann gibts in PHP ne ganz elegante Möglichkeit.

    Nun bist Du erst mal wieder dran...

    Grüße

    Tom

  3. Hi

    wie kann ich aus einem normalen Gästebuch das die einträge als txt (dat)datei speichert so einstellen das die neusten einträge als erstes ausgelesen werden

    ähem.. ich will ja nicht irgenwie schlau sein, ich kann php auch erst seit kurzem.. aber .. wie wärs wenn du beim schreiben, die gästebucheinträge nicht hinten an die datei anhängst, sondern ... VORNE... das heist, du machst das schon beim schreiben der einträge ???

    1. Hallo,

      ähem.. ich will ja nicht irgenwie schlau sein, ich kann php auch erst seit kurzem.. aber .. wie wärs wenn du beim schreiben, die gästebucheinträge nicht hinten an die datei anhängst, sondern ... VORNE... das heist, du machst das schon beim schreiben der einträge ???

      An Dateien kann man bei der heute üblichen Technik nur hinten etwas anhängen. Wenn man vorne etwas davor setzen will, muss man die Datei einlesen, im Arbeitsspeicher etwas "davorhängen" und dann den gesamten Block zurückschreiben, also die alte Datei überschreiben.

      Deshalb hatte ich ja nach dem Datenmodell für die Textdatei gefragt. Sind zum Bsp. in den Gästebucheinträgen Zeilenumbrüche erlaubt? Dann müsste man die ersetzen gegen ein anderes Zeichen. Also \r\n bzw \n austauschen gegen z.B. "<br>". Am Ende des Eintrags muss das \n bzw das \r\n aber erhalten bleiben!

      Dann kann man diesen Gästebucheintrag einfach an die Datei anhängen.

      Um sie später anzuzeigen, liest man die gesamte Datei mit $guestbook = file("datei") in ein Array ein. Dieses Array kann man dann mit $umgekehrt = array_reverse($guestbook); umdrehen. das letzte Element steht jetzt vorne. Dann kann man es mittels einer Ausgabefunktiion (zum bunt machen, Kästen malen, Formatieren, etc.) und array_walk() bequem ausgeben.

      Das sollte als Hinweis, wie's geht, genügen.

      Bei Fragen: Posting

      Grüße aus http://www.braunschweig.de

      Tom