datei einlesen und teile ersetzen mit php

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/datei_einlesen_und_teile_ersetzen_mit_php_33475/page_1 - zur Vollversion wechseln!


BiG_WEaSeL schrieb am 05.05.2002 um 18:12

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 schrieb am 05.05.2002 um 20:02

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 schrieb am 05.05.2002 um 21:04

Willst dus ersetzt ausgeben, oder in der Datei ersetzen?


Vir@s schrieb am 05.05.2002 um 21:15

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 schrieb am 06.05.2002 um 10:54

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 schrieb am 06.05.2002 um 11:26

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 schrieb am 06.05.2002 um 12:06

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 schrieb am 06.05.2002 um 13:30

Aber klar :)

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


jives schrieb am 06.05.2002 um 18:12

Das Script ändert aber nichts an der Datei, oder? Da wird nur der Text verändert ausgegeben...


BiG_WEaSeL schrieb am 06.05.2002 um 18:30

ja, die datei wird NICHT veraendert, nur die ausgabe.

@vir@s: danke, das script funktioniert.


Vir@s schrieb am 06.05.2002 um 18:43

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 schrieb am 06.05.2002 um 20:27

Ok, sorry :)
Ich dachte du willst die Datei ändern:rolleyes:




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025