# Eine bestimmte Zeile in einer *.txt Datei bearbeiten und speichern !?



## digiTAL (24. Dezember 2005)

Alooaa,

Ich habe eine TXT Datei wo ich Daten gespeichert habe, diese hat zum Beispiel 24 Zeilen. Wie kann ich die 16. Zeile bearbeiten, also den alten Text in der Zeile löschen und einen neuen einfügen und wieder speichern ohne das die restlichen Daten in der *.txt verloren gehen.

Weiß jemand wie man sowas bewerkstelligt !?

mfg digiTALE


edit: Das ganze will ich per *PHP* realisieren


----------



## Sven Mintel (24. Dezember 2005)

per [phpf]file[/phpf] erhältst du eine Datei zeilenweise als Array.
Ändere das Element mit dem Index #15 und speichere das Ganze, nachdem du es anhand des Zeilenumbruches implodet hast, wieder in der Datei.


----------



## digiTAL (25. Dezember 2005)

Hmm, versteh ich jetzt nicht wo ich da was mit Index # 15 ändern soll. Bin in Sachen PHP noch ein totaler Anfänger!

Hab mir das durchgelesen und das ist das auch wa ich brauche aber verändern könnte ich das nicht wirklich.

mfg digiTALE


----------



## Germanterminaotr (25. Dezember 2005)

Also ^^ hier ma ein beispielcode:

```
function zeile_loschen($zeile)
{
$datei="./schlagmichtot/oda/nicht.txt";
$file=file($datei);   //jetzt ist jede zeile als array in $file
unset($file($zeile));
$fopen=fopen($datei,"w"); // hier wird jetzt wieda alles geschrieben ausser die gelöschte zeile 
foreach ($file as $wert)
{
fwrite($fopen,$wert);
}
fclose($fopen);
return true;
}

/*
Coded by a PHP newbie ;)


*/
```


----------



## forsterm (25. Dezember 2005)

Hallo,
das hier könntet dir eventuell auch noch helfen.

mfg
forsterm


----------



## digiTAL (25. Dezember 2005)

wenn ich das angebe dann löscht der mir alles, aber wo muss ich was einsetzen das er mir nur die 16 Zeile löscht?

mfg digiTALE


----------



## forsterm (25. Dezember 2005)

Hallo,
das ist ganz einfach, hier mal ein Beispiel:

```
<?php
function delete_line($file, $line, $change_in) {
	 $entries = file($file);
	 if(empty($change_in)) {
		 unset($entries[$line-1]);
	 } else {
		 $entries[$line-1] = $change_in;
	 }
	 $newentries = implode("", $entries);
	 $datei = fopen($file, "w");
	 fputs($datei, $newentries);
	 fclose($datei);
}
 
delete_line("test.txt", 16, "test"); //Zeile 16 in der Datei test.txt wird durch test ersetzt
delete_line("test.txt", 16, ""); //Zeile 16 in der Datei test.txt wird gelöscht.
?>
```
 
mfg
forsterm


----------



## firstlord18 (26. Dezember 2005)

ja die function ist klasse


----------



## ronaldl (3. Oktober 2007)

Hallo auch ich habe den Beitrag gelesen weil ich genau diese Funktion gesucht habe,
nun hab ich das Problem das ich eine systemdatei bearbeiten möchte und ich nicht die rechte als php user habe wie bekomme ich root, sicherheit ist nicht wichtig ist en offline server...

thx ronaldl


----------

