Datei auslesen UND begrenzen

Hallo!

Ich brauch mal wieder Hilfe. Der Titel ist vielleicht ein wenig unglücklich gewählt..
Zu meinem Problem:

Datei auslesen, okay
Datei beschreiben, okay
Datei auf 5 Einträge begrenzen, ?
Datei wieder in der ersten Zeile beschreiben, letzte wird gelöscht, ?

Also, ich schreibe Daten in eine Datei, sobald neue Daten dazukommen sollen
diese in die erste Zeile geschrieben, und der letzte Datensatz gelöscht werden.
Mir fehlt die Funktion zum Begrenzen der Datei auf 5 Sätze, und das löschen des letzten Datensatzes...
 
Das ist eigendlich Relativ einfach, hier der "Gedankengang dazu":

Du machst eine Schleife,
in dieser zählst du wieviele Datensätze vorhanden sind.

Wenn mehr als 5 Datensätze vorhanden sind,
löscht du den letzten Datensatz und fügst am Anfang der Datei einen ein.
 
In einem Rutsch ist das nicht zu erledigen, da würdest du mit dem neuen Eintrag den bisherigen ersten Eintrag überschreiben.
Der Arbeitsablauf wäre also....
>Datei zeilenweise in Array lesen
>Datei zum Schreiben öffnen(wobei mit "w" ihr Inhalt gelöscht wird)
>Neuen Eintrag in die Datei schreiben
>erste vier Elemente des in Schritt 1 erzeugten Arrays in Datei schreiben
>Datei schliessen
PHP:
<?php
$datei="daten.dat";
$daten=@file($datei);
$neuereintrag="neueZeile";
$handle=fopen($datei,'w');
fputs($handle,$neuereintrag."\n");
for($zeile=0;$zeile<4;++$zeile)
	{
	if(!isset($daten[$zeile])){break;}
	fputs($handle,trim($daten[$zeile])."\n");
	}
fclose($handle);
?>
 
Hallo zusammen, ich hab nicht wirklich so Ahnung von PHP, deshalb meine Frage:
Ich suche einen code (ähnlich wie der, der hier schon gespostet wurde) mit dem ich einfach eine datei auf xx zeilen begrenzen kann.
Also beispiel: Datei wird auf 10 zeilen begrenzt.
Pro klick auf den submit button wird eine zeile in die datei geschrieben und man wird zur "danke" seite weitergeleitet (das hab ich soweit schon) jetzt will ich wenn 10 zeilen beschrieben wurden, dass der 11. Versuch eine Fehlermeldung bekommt und nicht in die datei geschrieben wird.
Und falls noch jemand ne idee hätte, wäre auch sehr hilfreich wenn es einen code geben würde der einen bestimmten wert wieder löscht (also die eine zeile dann wieder frei räumt)
Sodass sich der User also wieder austragen kann und platz für einen anderen da ist.
Hoffe das ist möglich, Vielen Dank schonmal!
MfG
x3008x
 
hab die funktionen mal angeguckt, da ich aber kein php kann weiß ich nicht so recht wie ich die funktionen für mein problem verwende :mad:
könntest du mir ein beispielcode geben was in diese richtung gehen würde, welches ich dann bisschen umschreiben könnte?
Oder vllt. der code der schon oben steht irgendwie nur ein wenig umändern?
naja auch wenn nicht trotzdem danke.
 
PHP:
$datei = file('deineDatei.endung');
if(sizeof($datei) <= 10) {
    //...schreib was in die datei
}

// eine Zeile löschen:
unset($datei[4]);  // Hier Zeile 5 (index des Arrays beginnt bei 0)
Ungetestet!
Hoffe das Beispiel hilft. :)
 
Hi!
Tausend dank für den code!
funktioniert super, mit dem unset weiß ich noch nicht genau, hab versucht es als "button ausgabe" zu machen, klappte aber nicht.
Ist aber auch nicht so wichtig, hauptsache die beschränkung klappt :)
Danke nochmal

MfG
x3008x
 
Zurück