daten in einer datei ersetzen

zum heulen, der verdraxelt die test-datei immer mehr, mit jedem neuen versuch, sie zu editieren...

also irgendwas is an dem script merkwürdig, aber ich weiss leider net was...

ich probier jetzt mal noch´n bissl.... hat sonst noch jemand einen vorschlag??

please help!
 
vielleicht meine ich etwas anderes als du, aber probiers doch mal mit str_replace():

PHP:
$file = file('testdatei.txt');
str_replace('3c', 'blahblah', $file);

damit würde jedes auftreten von '3c' in der datei durch 'blahblah' ersetzt werden. wenn du nur eine zeile bearbeiten willst, gehts so:

PHP:
$zeile = 4;
$file = file('testdatei.txt');
str_replace('3c', 'blahblah', $file[$zeile]);
 
hmm, das auslesen und das ersetzen funktioniert ja.
aber ich bekomm die "neuen" daten einfach nich richtig in die datei geschrieben...

das ist mein problem...
 
probiers mal so:

PHP:
$file = file('testdatei.txt');
$file = str_replace('3c', 'blahblah', $file);
$f_str = implode("\n", $file);
$f = fopen("testdatei.txt", "w");
fputs($f, $f_str);
fclose($f);
 
geht! FAST!!!

so sieht´s jetzt aus:

1a~~1b~~1c~~1d~~1e

2a~~2b~~2c~~2d~~2e

3a~~3b~~blahblah~~3d~~3e

4a~~4b~~4c~~4d~~4e

5a~~5b~~5c~~5d~~5e

also fast richtig! nur leider dürfen die leerzeilen da net drin sein... bekommt man die noch weg?
 
PHP:
$file = file('testdatei.txt');
$file = str_replace('3c', 'blahblah', $file);
$f_str = implode("", $file);
$f = fopen("testdatei.txt", "w");
fputs($f, $f_str);
fclose($f);
 
klasse, funzt fast perfekt. vielen dank erstmal!
hab nur noch EINEN meckerpunkt. die neue text-datei sieht nach mehrmaligem ändern so aus

1a~~1b~~1c~~1d~~1e[][]
2a~~2b~~2c~~2d~~2e[][]
3a~~3b~~blahblah~~3d~~3e[][]
4a~~4b~~4c~~4d~~4e[][]
5a~~5b~~5c~~5d~~5e

er macht mir hinter den zeilen immer ein rechteck, das ist aber kein zeilenumbruch sondern irgendwas anderes. kann man das noch irgendwie umgehen? beim auslesen stört mich das zeichen nicht, ist blos lästig, weil die datei so immer größer wird....
 
hmm

schonmal probiert das mit den anderen editor zu öffnen?
vielleicht sind das irgendwelche anderen zeichen, rücklauf oder so.
 
Zuletzt bearbeitet:
ich hab das jetzt mal mit paar anderen text-editoren o.ä. geöffnet und da werden die zeichen als leerzeile (bzw. zeilenumbruch) dargestellt. aber wie kommt dieser zeilenumbruch da rein???

in dem skript wird doch nie ein zeilenumbruch verwendet.... :confused:
 
nein, aber in der datei sind ja schon zeilenumbrüche drin.

dadurch dass du die datei einliest und dann wieder implodest wird wahrscheinlich eine andere art von zeilenumbruch eingesetzt.

aber wenn es funktioniert ist es ja eigentlich auch egal.
 
Zurück