von unten nach oben auslesen von .txt

melistik

Erfahrenes Mitglied
wie kann ich eine Datei von unten nach oben auslesen
wenn es auch geht von unten nach oben beschreibe ?

meine txt datei ist mit explodes gespickt und ich möchte das so machen,
das immer der zuletzt eingetragene news auch oben in der ausgabe steht.
bis jetzt schreibe ich immer unten drunter weiter also das der älteste oben steht.
Wie kann oder muss ich das ändern ?
 
PHP:
$datei = "daten.txt";
$f = file($datei);
for($i=count($f)-1;$i>0;$i--)
{
 echo $f[$i]."<br>\n";
}

Dieses Script liest die Datei in ein Array ein und gibt diese rückwärts aus. Das ist doch das, was du wolltest.
So musst du an der Datze nichts ändern.
 
beide beziehen sich ja nur auf arrys die sich umsortieren,
dieses wollte ich net der script soll die datei von unten nach oben lesen, und in jeder zeile die arrys in der reihenfolge so wie ise stehen ausgeben nur das auslesen umkehren das die letzte zeile in txt zuerst ausgegeben wird.

melistik|--|test gif|--|nun ja es wird ja immer besser ;)<br>gif am anfang|--|27.08.03 |--|info.gif|--||--|
melistik|--|andere gif|--|hehe per auswahl das icon auswählen<br>das gefällt mir irgendwie ;)|--| 27.08.03 |--|update.gif|--||--|
Brainwashed|--|Krasses script ;)|--|Well done mister, design is auch cool ;)|--| 27.08.03 |--|update.gif|--||--|


der brainwashed eintrage der zuletzt eingetragen wird soll sozusagen zuerst ausgelesen werden und anzeigt werden. Die verschiedenen anzeige elemente sind durch arrys getrennt (mit explode)
so wie ihr das meintet ließt ihr ja die reihenfolge der arrys genau anders herum aus.
 
soviel ich weiss kannst du nicht von ganz unten zeilenweise nach oben auslesen...
du musst das ganze schon in ein array packen und den entweder umdrehen und ausgeben oder von hinten nach vorne ausgeben

greetz
 
PHP:
<?

function rueckwaerts_auslesen($datei)
{
if(file_exists($datei)
{
$file = file($datei);
$array=array();
foreach($file as $ausgabe)
{
array_push($array,$ausgabe);
}
rsort($array);
return $array;
}else{
return false;
}
}

//und in deinem skript ganz einfach
foreach(rueckwaerts_auslesen("trallala.txt") as $zeile)
{
list($user,$topic,$text,$datum,$icon) = exolode('|--|',$zeile);

echo $user."\t".$topic."\t".$text."\t".$datum."\t".$icon."<BR><BR>";
}
//Oder hab ich was falsch verstanden?
?>
 
könntest du bitte den script genauer erläutern, da ich mich net mit function auskenne, und ich dann natürlich nichts mit den variablen anfangen kann da ich nicht weiss welche function oder wert dort gefragt wird.
sind das nun zweit scripts oder einer das habe ich auch net so ganz verstanden
PHP:
$file = filesize ("edit.txt");
$fp = fopen ("edit.txt","r");
if ($file == "0")
{
print "nichts in edit.txt  schreibe einen post !";
}
else
{
while ( ! feof ( $fp ))
{
    $buffer = fgets($fp, 1000);
    $foo = explode ("|--|", $buffer);
    echo "<center> <table border='1' cellpadding='2' cellspacing='0' style='border-collapse: collapse' bordercolor='$border' width='$width' bgcolor='$bg_table' >";
    echo "<tr><td bordercolor='$bg_table' colspan='2'><img border='0' src='img/$foo[4]' align='absmiddle' width='33' height='33'><font size='$text_size'> $foo[1]</td></tr>";
    echo "<tr><td bordercolor='$bg_table' colspan='2'><font size='$text_size'> $foo[2]</td></tr>";
    $link = $foo[5];
 if (empty ($link))
   { $links = "&nbsp;";}
 else 
   { $links = "<p><font face='Verdana' size='$size_down'>links: </font><a target='_blank' href='http://$foo[5]'><font size='$size_down' face='Verdana'>$foo[5]</font></a></p>";}


    echo "<tr><td bordercolor='$bg_table' width='33%'><font size='$size_down'>name: $foo[0]</td>";
    echo "<td bordercolor='$bg_table' width='33%'>$links</td>";
    echo "<td bordercolor='$bg_table' width='33%'><p align='right'><font size='$size_down'>date: $foo[3]</td></tr></table><center>";
    echo "<br><br>";
}
}

so funktioniert momentan mein auslesen, am einfachsten zu verstehen wäre es wenn du hierdrauf anwendest.
 
Zuletzt bearbeitet:
PHP:
<?
function rueckwaerts_auslesen($datei)
{
if(file_exists($datei))
{

$file = file($datei);
$file = array_reverse($file);
return $file;
}else
 return false;

}

if(filesize("edit.txt") == 0)
   die('nichts in edit.txt <img src="images/smilies/smile.gif" border="0" alt=""> schreibe einen post !');

foreach(rueckwaerts_auslesen("edit.txt") as $zeile)
{
list($user,$topic,$text,$datum,$icon,$link,$na2) = explode('|--|',$zeile);

    echo "<center> <table border='1' cellpadding='2' cellspacing='0' style='border-collapse: collapse' bordercolor='$border' width='$width' bgcolor='$bg_table' >";
    echo "<tr><td bordercolor='$bg_table' colspan='2'><img border='0' src='img/$icon' align='absmiddle' width='33' height='33'><font size='$text_size'> $topic</td></tr>";
    echo "<tr><td bordercolor='$bg_table' colspan='2'><font size='$text_size'> $text</td></tr>";

    empty($link)
          ? $link = "&nbsp;"
          : $link = "<p><font face='Verdana' size='$size_down'>links: </font><a target='_blank' href='http://$link'><font size='$size_down' face='Verdana'>$link</font></a></p>";

    echo "<tr><td bordercolor='$bg_table' width='33%'><font size='$size_down'>name: $user</td>";
    echo "<td bordercolor='$bg_table' width='33%'>$link</td>";
    echo "<td bordercolor='$bg_table' width='33%'><p align='right'><font size='$size_down'>date: $datum</td></tr></table><center>";
    echo "<br><br>";

};

?>
 
Zuletzt bearbeitet:
äm
$datei=edit.txt; oder $datei = fgets($fp, 1000);
das zweite right oder ?!
nun ja er meckert aber :
Call to undefined function: exolode()
 
Zurück