gezielte zeile in TXT Dokument Schreiben

Nabi

Erfahrenes Mitglied
Hallo , Meine Frage : wie erreicht man ein gezielte zeile in einem Text Dokument
zum Schreiben durch fputs oder fwrite , zum beispiel zeile 12 von Top gerechnet
0
1
2
3
.
.
bis 12 // hier will ich etwas schreiben welche Funktion soll ich Nutzen


danke in voraus.
 
Hi,

wie groß ist die Datei denn? Sollte sie nicht allzu groß sein, wäre es wohl am einfachsten, die Datei via file() komplett in ein Array zu lesen, dieses zu bearbeiten und dann wieder in die Datei zurückzuschreiben.
 
wieder in die Datei zurückzuschreiben
Genau das wollte ich wissen aber wie?
Lesen ist Kein problem z.b.
$fp=file ("test.txt");
$str=$fp[12]; // die inhalte von $str ist zeile 12 mit echo $str kann man zeile 12 LESEN
aber SCHREIBEN ?
 
Wenn Du das komplette Array dann wieder zurück in die Datei schreiben möchtest, kannst Du das z.B. wie folgt machen:

PHP:
file_put_contents("test.txt", implode("\n", $fp));
 
Zuletzt bearbeitet:
eine zeile ist nach oben gesprungen , das muss nicht sein.

PHP:
<?php
$fp=file("test.txt");

$fp[3]="########################";

file_put_contents("test.txt", implode("\n", $fp));  
?>

das resultat :
000000000000000000000000
1111111111111111111111111
222222222222222222222222222
########################444444444444444444444444444
5555555555555555555555555555
666666666666666666666666666
77777777777777777777777777
88888888888888888888888888888
9999999999999999999999999
 
Bei der Zeile, welche du bearbeitest, musst du natürlich sicherstellen, dass der Zeilenumbruch am Ende erhalten bleibt.
 
Ja, Danke

PHP:
<?php
$fp=file("test.txt");

$fp[1]="########################\r\n";
$fp[5]="########################\r\n";

file_put_contents("test.txt", implode("\n", $fp));  
?>

resultat:
00000000000000000000000000
########################
222222222222222222222222222
333333333333333333333333333
44444444444444444444444444444
########################
66666666666666666666666666666
7777777777777777777777777777
 
Zurück