Hello,
kleine Erläuterung und Fehlerkorrektur. length() gibt es nicht in PHP...
also besser so:
define('CRLF', "\n"); ## Zeilenende-Zeichen muss zum System passen
define('FELDTRENNER','|'); ## Trennzeichen zwischen den Datenfeldern
## darf in den Daten nicht vorkommen!
$datei_name = "Datei";
$datei_handle = fopen("$datei_name", 'rw'); ## Datei öffnen
$datei_lock = flock($dateihandle, LOCK_EX); ## Dateisperre beantragen und solange
## warten bis es klappt
$datei_laenge = filesize($datei_name); ## Dateigröße ermitteln
$datei_inhalt = fread($datei_handle, $datei_laenge); ## Datei komplett auslesen
$datei_array = explode(CRLF, $datei_inhalt); ## ausgelesene Datei in Array umwandeln
## ein Element pro Datensatz
foreach($datei_array as $satznummer => $datensatz) ## alle Elemente des Arrays
{
$datei_array[$satznummer] = explode(FELDTRENNER,$datensatz); ## in Felder aufteilenif($datei_array[$satznummer][0] == '2' and ## gleichzeitig nach gewünschtem
$datei_array[$satznummer][1] == 'Tina' and ## Inhalt fahnden
$datei_array[$satznummer][2] == 'Hannover')
{
$datei_array[$satznummer][2] = 'München'; ## Bei Treffer ersetzen
}
}foreach($datei_array as $satznummer => $datensatz) ## Felder wieder zu Zeilen verpacken
{
$datei_array[$satznummer] = implode(FELDTRENNER,$datensatz);
}$datei_inhalt = implode(CRLF, $datei_array); ## Zeilen wieder zu String verpacken
fseek($datei_handle, 0, SEEK_SET); ## Satzzeiger an den Dateianfang
## zurückstellen
fwrite($datei_handle, $datei_inhalt); ## Dateiinhalt wegschreiben
ftruncate($datei_handle, $strlen($datei_inhalt); ## evtl. überstehenden Rest der alten
## Datei abschneiden
fclose($datei_handle); ## Datei schließen und Lock freigeben
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
![](http://bitworks.de/~selfHTML/Virencheck.gif)