2x Hilfe bitte!

Feldhofe

Erfahrenes Mitglied
Hallo!

Ich bräuchte bitte mal in zwei Dingen Hilfe!

Erstens:
Damit kriege ich meine Textdatei ausgelesen:
PHP:
$afile = file("chat_userliste.txt");
$rows = count($afile);

while($rows >= count($afile)-10)
{
$rows--;
$bfile = explode("|",trim($afile[$rows]));
print"<body><font face=verdana size=-1>$bfile[0]</font><br>";
}

Jetzt stehen die Einträge, die in der .txt-Datei in der untersten Zeile stehen, ganz oben in der Anzeige.
Wie kann ich das hier umdrehen, also dass die neusten Einträge unten angezeigt werden??


Danke für eure Hilfe!
Gruß Feldhofe



Achso: Und zweites:
Wie kriege ich einzelne Zeilen gelöscht?
Ich will die Zeile, in der "kyz" drin vorkommt, löschen. Wie macht man das??

Danke schonmal!
 
Zuletzt bearbeitet:
zu 1:
PHP:
$afile = file("chat_userliste.txt");
$rows = count($afile);
$a = 0;
while($a <= 10)
{
$bfile = explode("|",trim($afile[$rows]));
print"<body><font face=verdana size=-1>$bfile[0]</font><br>";
$a++;
}

zu 2:

einfach die zeile mit $afile[5] = '' leeren und danach wieder imploden und das ganze "fputten"
 
Also 2.) klappt gut, danke!

Aber 1.) will nicht funktionieren, er zeigt absolut nix an, er kriegt keine Ergebnisse raus!
Irgenwas an der while-Schliefe kann da wohl nicht stimmen?

Feldhofe
 
PHP:
$afile = file("chat_userliste.txt");
$rows = count($afile);
$a = 0;
while($a <= 10)
{
$bfile = explode("|",trim($afile[$a]));
print"<body><font face=verdana size=-1>$bfile[0]</font><br>";
$a++;
}

so.. das eine indiz war falsch...
so werden immer die 10 obersten zeilen angezeigt.
 
Hey, das funktionier auch, danke!!!

Aber was mache ich, wenn ich von der Textdatei die letzten 10 Einträge in der Reihenfolge wie sie eingetragen wurden (von oben nach unten) angezeigt haben will?

Feldhofe
 
Hmmm...vielleicht kannst du mir ja noch einen Tip geben oder hast eine Idee...ich rätsel die ganze Zeit schon rum:

Ich habe diese Userliste, für die du mir grade geholfen hast: Bisher steht da nur der Username als Variable drin.

Nun will ich es irgendwie machen, dass man, wenn man 5 Minuten nix macht, aus der Liste rausgestrichen wird.
Hast du vielleicht irgendne Idee, wie man das machen könnte??

Feldhofe
 
da müsstest du dann wohl noch den timestamp der letzten aktion hinten anhängen und immer ein schleife laufen.

ich greif einfach mal assoziativ darauf zu... musst du dann sehen wies bei dir genau sein muss.
PHP:
$file = file("chat_userliste.txt");
for($a = count($file); $a >= 0; $a--;){

if($file[timestamp] < $aktuellertimestamp-300){
$file[$a] = '';
}

}

und dann eben wieder imploden und fputten.
 
Folgendes habe ich jetzt mal probiert:
Der Einfachheit halber (mit Time kommt später) habe ich durchsuchen lassen, in welcher Zeile der zweite Wert "Kikiki" ist, und diese Zeile soll gelöscht werden.

Aber es werden immer alle Zeilen gelöscht, nicht nur die, wo Kikiki vorkommt!
Warum??

Mit dem Test "print"Kiki kommt in Zeile $a vor<br>";" nennt er mir immer die richtige Zeile!

PHP:
$datei = file("chat_userliste.txt");
$rows = count($file);

$a=0;
while($a < $rows)
{
$bfile = explode("|",trim($afile[$a]));
print"$bfile[0]|$bfile[1]|$bfile[2]<br>";

    if($bfile[1] == 'Kikiki')
    {
     print"Kiki kommt in Zeile $a vor<br>";
    $datei = file("chat_userliste.txt");
    $open = fopen("chat_userliste.txt", "w+");
    $datei[$a] = "";
    fputs($open, $datei[$a]);
    fclose($open);

    }
$a++;
}
 
Zurück