x Einträge aus Text-Datei auslesen

hat jeder eintrag eine eigene Zeile in der datei ?
PHP:
// speichert den datei inhalt in einen array -> jede zeile ein indiez
$datei_inhalt = file("xyz.txt");
$zaehler = 0;

while ($zaehler < 10) {
echo $datei_inhalt[$zaehler];
$zaehler++;
}
liest zwar nicht 10 einträge aus, gibt aber die ersten 10 wieder ;)

Edit: Solltest du die letzen 10 einträge auslesen wollen, dann sollte das script so aussehen
PHP:
// speichert den datei inhalt in einen array -> jede zeile ein indiez
$datei_inhalt = file("xyz.txt");
// dreht den inhalt des array's um :)
$datei_inhalt_reverse = array_reverse($datei_inhalt);
$zaehler = 10;

while ($zaehler > 0) {
echo $datei_inhalt_reverse[$zaehler];
$zaehler--;
}

Grüße, Morph
 
Zuletzt bearbeitet:
da war doch was...

...das hab ich schonma irgendwo gesehen! tut mir leid wie das genau geht kann ich dir nicht mehr sagen (bin noch so ziemlicher php anfänger) aber das prinzip kann ich dir erklären!

txt datei
Code:
$text[20] = "blablabla";
...
$text[3] = "blablabla";
$text[2] = "blablabla";
$text[1] = "blablabla";
da musste dann bei dem auslese script sowas mit som subtrahierer (verbessert mich wenns nich stimmt *g*) machen! keine ahnung wie das jetzt genau geht aber irgendwie das der von der letzten also höchsten zahl als eintrag immer einen abzieht bis er genau 10 runter ist!

ich nehme an du willst sowas machen wie "last 10 posts" oder "latest files" oder so wa ;) da gibts auch fertige scripts für... keine ahnung wo aber such mal auf http://www.jex-treme.de oder so!

sorry das ich dir nicht helfen kann ;) aber die anderen können das sicher!

cu, slimie
 
Ne, also die Dateien werden per Array immer voreinander gespeichert.

PHP:
if($insert) {
if($smilies=1) {
// Smilie-Funktion
}
$date = date("d.m.Y");
$time = date("H:i");
$eintrag = "$name<br>$time $date<br>$message<br><br>";

$alteEintraege=file("msg.txt");
$AnzahlDerEintraege=count($alteEintraege);
$eintraege="$eintrag$alteEintraege[0]";
for ($z=1; $z<$AnzahlDerEintraege; $z++)
 {
  $eintraege="$eintraege$alteEintraege[$z]";
 }
$datei=fopen("msg.txt", "w");
fwrite ($datei, $eintraege);
fclose($datei);
}
 
Zuletzt bearbeitet:
Hm ...
Könntest ja z.b. da
PHP:
$eintrag = "$name<br>$time $date<br>$message<br><br>§||§";
eine art "trennzeichen" einfügen, und später dann per
PHP:
$array = explode("§||§", $VarDieZerteilWerdenSoll);
wieder auseinander machn - dann haste direkt alla nacheinader volgenden in einem array

Grüße, Morph
 
Original von ..:: Morph[MHF]

Gern geschehen
Wegen deinem Post im anderen Thread mit dem einbauen von dem was ich gepostet habe: Du fragst mich jetzt sachen
am besten geht das wenn die datei leer ist und du neu reinschreibst - dann halt dieses $beitrag = ... so abändern wie ich es gepostet hab - kannst natürlich auch bliebgige zeichen zum "auseinandernehmen" benutzen ... bin jetzt aber zu dicke um das zu erklären, sorry
Morgen erklär ich s dir aber gerne genauer :)

Ich bin ja nicht ganz blöd :) . Ich kapier schon was mit dem explode bewirkt... naja... so in etwa. Was genau, ka. Aber egal.

Ich meine wo ich das hier einbaue:
PHP:
$array = explode("§||§", $VarDieZerteilWerdenSoll);

Mal ne Frage. Wieso "$VarDieZerteiltWerdenSoll"? Wie lese ich denn die ersten $anzahl-Beiträge aus?

edit:
Die Beiträge lese ich übrigens so aus:
PHP:
include("msg.txt");
:) :) :)
 
Hi ich weiß jetzt nicht ob das genau is was du willst aber hier hast einmal ein bsp von mir.:
PHP:
$id = 10; // wieviele einträge er anzeigen soll

		$fcontent = file('eintraege.txt');//in ein array einlesen
                for ($i = 0;$i<$id;$i=$i+1){
		$pieces = explode("#",$fcontent[$i]);
		
//mit $pieces[0] auslesen zb:
echo "$pieces[1]";//name
echo "$pieces[2]";//adresse
echo "$pieces[3]";//hundemarke		
			}

Hoffe das hilft dir einigermasen cya nucle
 
Zuletzt bearbeitet:
hey nucleus, mal frage:

dein avatar ist doch teil von so nem coolen affen-bildchen. hast du das zufällig irgendwo oder wo gibts das? ich hab das eben mal per mail gekriegt, aber leider wieder gelöscht...

SilentWarrior
 
Zurück