text-dateien.

marvid

Mitglied
ich hab ein problem, ich hab ein formular, und eine work.php, die die daten aus dem formular in eine txt-datei schreiben soll. das klappt auch alles nur es ja keinen sinn macht, wenn die neuen news am ende der txt-datei stehen.

PHP:
<?php
$db = "db.dat";
$fp = fopen($db,"a");
fputs($fp,"$inhalt");
fclose($fp);
?>

ich denke das ich den inhalt der textdatei in eine variable speichern muss, dann erst den neuen inhalt und danach den alten in die txt-datei schreiben muss. aber wie mache ich das?
 
Benutzte Arrays.

Mal angenommen deine Textdatei ist so aufgebaut:

Name1
Name2
Name3

und Name4 soll jetzt an den Anfang gemacht werden dann könnte dein Script ungefähr so aussehen:

PHP:
$neuerName = "Name4";

// nur zum lesen öffnen
$fp = fopen("members.txt", "r");

// hier das neue Member an erste Stelle im Array
$members[] = $neuerName;

// Daten aus Text Datei in Array
while (!feof($fd))
{
    $buffer = fgets($fd, 4096);
    $members[] = $buffer;
}
fclose($fd);

reset($members);

// Datei zum schreiben am Anfang öffnen
$fp = fopen("members.txt", "w");

foreach ($members as $val)
{
    $putName = $val."\n";
    fputs ($fp, $putName, 4096);
}

fclose($fd);

Ist ungetestet, aber so müßte es gehen!

Gruß
Fati
 
hm... das hab ich jetzt mal versucht, aber da bekomm ich vielleicht 100 fehler.

geht das ganze nicht einfacher? bei sowas blick ich ja garnix mehr :(
 
mann könnte das problem natürlich auch andersrum lösen:

du schreibst wie gehabt deine news hintendran an deine text datei

dann liest du die datei ein und gibst sie umgekehrt raus:

z.b.
PHP:
$news = file("news.txt");
for ($lo=sizeof($news);$lo>0;$lo--) {
 echo "$news[$lo]<hr>";
}
 
@ melmager
vielen dank klappt suppa ;)

@ Fatility
den fehler kann ich dir leider nicht sagen, weil das soviele sind, und 1 secunde später kratzt mir der IE ab :(
 
Zurück