"We are back" « oc.at

datei einlesen und teile ersetzen mit php

BiG_WEaSeL 05.05.2002 - 18:12 752 11
Posts

BiG_WEaSeL

Elder
-
Avatar
Registered: Jun 2000
Location: Wien
Posts: 8349
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.

Sushimaster

Little Overclocker
Avatar
Registered: Dec 2001
Location: NÖ/Wien
Posts: 93
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()

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Willst dus ersetzt ausgeben, oder in der Datei ersetzen?

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
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

BiG_WEaSeL

Elder
-
Avatar
Registered: Jun 2000
Location: Wien
Posts: 8349
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.

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Zitat von BiG_WEaSeL
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.

Deshalb solltest du auch die file() funktion verwenden - denn die liefert jede Zeile extra zurück.

Also z.B.:

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);
?>

Der code ersetzt alle "a" durch ein "A" in einer eingelesenen file! Die foreach konstruktion is dafür da, weil du bei foreach selber nur eine Kopie von dem Array bearbeitest - deshalb der index $i!

Mfg, Vir@s

BiG_WEaSeL

Elder
-
Avatar
Registered: Jun 2000
Location: Wien
Posts: 8349
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).

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Aber klar :)

Wirst sehen - ein paar Scripts selber schreiben und schon geht alles leichter :)

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Das Script ändert aber nichts an der Datei, oder? Da wird nur der Text verändert ausgegeben...

BiG_WEaSeL

Elder
-
Avatar
Registered: Jun 2000
Location: Wien
Posts: 8349
ja, die datei wird NICHT veraendert, nur die ausgabe.

@vir@s: danke, das script funktioniert.

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Zitat von KaZaa
Das Script ändert aber nichts an der Datei, oder? Da wird nur der Text verändert ausgegeben...

Jep klar - wird ja nur eingelesen und die Variable dann modifiziert!

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Ok, sorry :)
Ich dachte du willst die Datei ändern:rolleyes:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz