URL: https://www.overclockers.at/coding-stuff/datei_einlesen_und_teile_ersetzen_mit_php_33475/page_1 - zur Vollversion wechseln!
hallo!
mein problem ist folgendes, ich hab eine datei (ascii), moechte diese datei komplett einlesen in eine variable, dann nach eine bestimmten zeichenkette suchen und diese ersetzen durch eine andere variable.
was ich nicht hinbekomm ist die datei in eine variable zu speichern (in einen array schaff ich's, aber irgendwie bring ich's nicht zsamm den array zu durchsuchen und die zeichenkette zu ersetzen.
wenn wer verstanden hat was ich mein waere es nett wenn ich ein paar tipps oder code schnipsel bekommen wuerde.
Wenn der Begriff immer nur in einer Zeile vorkommt (also ned über einen Zeilenumbruch geht): würd einfach ne for schleife machen, von i=0 bis i=(anzahl der elemente im array-1)=(zeilen in datei). Und dann in den einzelnen arrayelementen ersetzten.
Wenns auch über Zeilenumbrüche gehen soll, dann vielleicht in einer for schleife zuerst das ganze array auf einen einzigen string hängen und dann in dem austauschen.
welche funktion du jetzt genau zum austauschen nimmst, hängt davon ab wie mächtig ihre suchfunktion sein soll. zb für reguläre ausdrücke: ereg_replace()
Willst dus ersetzt ausgeben, oder in der Datei ersetzen?
mixed str_replace ( mixed search, mixed replace, mixed subject)
ersetzt einen Teilstring (http://www.php.net/manual/en/function.str-replace.php)
die datei in eine Variable einlesen:
array file ( string filename [, int use_include_path])
gibt die ganze File in form eines Arrays zurück (http://www.php.net/manual/en/function.file.php)
foreach ($array as $value)
damit durchsuchst du teile eines arrays (http://www.php.net/manual/en/contro...res.foreach.php)
Jo damit solltest du alles machen können!
Mfg, Vir@s
danke mal fuer die tipps, hab vergessen dazu zu schreiben das ich eh weiss wie die funktionen heissen, aber es halt nicht zamkrieg, naja werds morgen oder uebermorgen mal probieren was ihr so gepostet habts.
btw.: das zu ersetzende geht nicht ueber mehrere zeilen.
Zitat von BiG_WEaSeLdanke mal fuer die tipps, hab vergessen dazu zu schreiben das ich eh weiss wie die funktionen heissen, aber es halt nicht zamkrieg, naja werds morgen oder uebermorgen mal probieren was ihr so gepostet habts.
btw.: das zu ersetzende geht nicht ueber mehrere zeilen.
Code: PHP<? $file_content = file("test.txt"); echo "Original file: "; echo join("<BR>",$file_content); echo "<P>"; $i = 0; foreach ($file_content as $line) { $file_content[$i] = str_replace("a","A",$line); $i++; } echo "Modified file: "; echo join("<BR>",$file_content); ?>
ma bin ich dumm, danke vir@s, so muessts auch bei mir funktionieren (hab jetzt leider keine zeit zum testen), ich hab einfach vergessen eine schleifenvariable zu verwenden, aber wie gesagt, die arrays in php sind fuer mich noch ein bisschen ein spanisches dorf (aber mit uebung wird das schon werden).
Aber klar
Wirst sehen - ein paar Scripts selber schreiben und schon geht alles leichter
Das Script ändert aber nichts an der Datei, oder? Da wird nur der Text verändert ausgegeben...
ja, die datei wird NICHT veraendert, nur die ausgabe.
@vir@s: danke, das script funktioniert.
Zitat von KaZaaDas Script ändert aber nichts an der Datei, oder? Da wird nur der Text verändert ausgegeben...
Ok, sorry
Ich dachte du willst die Datei ändern
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025