Homepage selbermachen 7.852 Themen, 35.619 Beiträge

In bestimmte Zeile einer Datei schreiben mit php

computerschlumpf / 3 Antworten / Baumansicht Nickles

Hallo,

irgendwie habe ich den Dateizugriff mit php noch nicht ganz verstanden. Auslesen kriege ich gebacken, aber ich möchte in eine bestimmte Zeile einen Wert eintragen. Beispieldatei:

Hunde; 234
Katzen; 457
Elefanten; 345

Jetzt hat sich der Wert Elefanten verändert und den möchte ich überschreiben. Wie mache ich das? Ich habe es so versucht:

$fp = fopen("data.txt","r+");
while ($line = fgets($fp,1000)) {
if (ereg("Elefanten;",$line)) {
fputs ($fp, "Elefanten; ".$Elefanten_Anzahl);
}
}
fclose($fp);

Leider geht das halt nicht. Wo ist mein Denkfehler?

Gruß

computerschlumpf

PS: Keine Sorge ich möchte keine Tierhandlung aufmachen ;-)

There are only 10 types of people in the world: Those who understand binary and those who don't.
bei Antwort benachrichtigen
Heinz_Malcher computerschlumpf „In bestimmte Zeile einer Datei schreiben mit php“
Optionen

Hi also zunächst würde ich in deinem fall die einzenlen zeilen auslesen . du kannst dann in der textdatei einfach die zahlen ändern.

$filename = "data.txt";
$fp = fopen("$filename","r+");
$inhalt = fread ($fp, filesize($filename));
$zeile = explode("\n", "$inhalt");

echo "$zeile[0]
";
echo "$zeile[1]
";
echo "$zeile[2]
";

bei Antwort benachrichtigen
Dumistvieh computerschlumpf „In bestimmte Zeile einer Datei schreiben mit php“
Optionen

Zeilenweise in ein Array speichern geht noch leichter:

$fp = fopen("datei","modus");
$data = file("datei");
fclose($fp);

Der Weg über ereg ist schon gut oder auch strstr. Ändere einfach die Werte in dem Array und am Schluß schreibst Du die Werte in die Textdatei. Ein implode("\n",$data); macht daraus wieder eine Zeichenkette getrennt mit Zeilenumbruch.

Gruß Dumistvieh

--- wie immer: ALLE ANGABEN OHNE GEWEHR ÄH GEWÄHR!
bei Antwort benachrichtigen
computerschlumpf Nachtrag zu: „In bestimmte Zeile einer Datei schreiben mit php“
Optionen

Hi,

Danke für die Antowrten, allerdings ist meine eigentliche Frage nicht beantwortet: Wie ich nur eine bestimmte Zeile ändere.

Für die Praxis lese ich jetzt alle Werte ein (ähnlich wie HM schreibt)und schreibe diese in die Datei rein, [obwohl ich halt nur einen Wert verändern möchte]

Gruß

computerschlumpf

There are only 10 types of people in the world: Those who understand binary and those who don't.
bei Antwort benachrichtigen