Zeichenkette Loeschen und den Rest wieder Speichern
Christoph
- php
Hi zusammen,
Bin dabei mir nen Newsletter zu schreiben und stecke momentan bei der function Mitglieder loeschen fest.
Ich hab alle Mitglieder in einer Datei als Array geispeichert der so aussieht:
Name|Email|Tag|Uhrzeit
Name|Email|Tag|Uhrzeit
Name|Email|Tag|Uhrzeit
Nach dem ich den File eingelsen habe Splitte ich ihn via explode(), und werend dessen lasse ich mir das Gesuchte Mitglied via eregi() suchen und loesche dann den Kompletten Array um die ganzen Informationen des Mitglied aus der Datei zu loeschen.
Problem ist nun aber das Speichern der Restlichen Strings.Wenn ich den String [0] aus dem Array des Files nehme kann ich ihn Problem los Loeschen und den file wieder Speichern ohne das mir die anderen Mitglieder Informationen verloren gehen.Wenn ich allerdings den String [1] nehme gehen mir die Informationen von String [0] verloren bei String [2] die Informationen von String [1] und [0] und immer so weiter.
Wie kann ich verhindern das mir die Informationen verloren gehen?
Vieleicht durch rewind() ?
Ich hab euch den Ausszug vom Script mit Gepostet:
if($delete)
{
$datei = file("user.dat","w");
$z=count($datei);
for($i=0;$i<$z;$i++)
{
while(list($k, $v)= each($datei))//Splitten
{$inhalt=explode('|',$v);
$del = eregi(trim($suche),$v);//suchen
if($del)//wenn gefunden
{
echo "Gefunden!<br>";
unset($v);//Ganze Zeile Loeschen
if($datei)
{
for($i=0;$i<count($datei);$i++)
{
while(list($k, $v)= each($datei))
{
echo "Jetzt: $v<br>";
$datei=fopen('user.dat', 'w');//öffnen
fputs($datei, $v);//Neue Daten Speichern
fclose($datei);
}
}
}
}
}
}
}
Wär nett wenn mir jemand weiterhelfen kann.
Danke alle.
MfG Christoph
Hi zusammen,
Wenn das Posting von gerade keiner versteht versuche ich es so nochmal:
Ich möchte gerne aus einer Datei einen bestimmten String loeschen und dann die Restlichen Strings wieder speichern.
Wie geht das???
Wär nett wenn ihr mir nun weiterhelfen könnt.
MfG Christoph
Hallo,
Ich möchte gerne aus einer Datei einen bestimmten String
loeschen und dann die Restlichen Strings wieder speichern.
Wie geht das???
Eine temporaere Datei erstellen und dann die Eingabe-Datei
einlesen und gleichzeitig in die neue Datei schreiben, bis du
zu der entsprechenden Zeichenfolge gekommen bist. Dann den
Teil ueberspringen und danach dann einfach den Rest weiter
in die temporaere Datei schreiben. Wenn du am Datei-Ende der
Eingabe-Datei angelangt bist, beide Dateien schliessen und
die temporaere Datei umbenennen in die Orginal-Datei.
Natuerlich musst du darauf achten, dass du die Zugriffe
synchronisierst.
Gruesse,
CK
Hi,
Eine temporaere Datei erstellen und dann die Eingabe-Datei
einlesen und gleichzeitig in die neue Datei schreiben, bis du
zu der entsprechenden Zeichenfolge gekommen bist. Dann den
Teil ueberspringen und danach dann einfach den Rest weiter
in die temporaere Datei schreiben. Wenn du am Datei-Ende der
Eingabe-Datei angelangt bist, beide Dateien schliessen und
die temporaere Datei umbenennen in die Orginal-Datei.
Natuerlich musst du darauf achten, dass du die Zugriffe
synchronisierst.
Klingt Kompliziert!Aber hat durchaus geholfen.
MfG Chris
Hallo,
Klingt Kompliziert!
Kompliziert ist lediglich die Synchronisation ueber
Prozess-Grenzen hinweg (IMHO eine der kompliziertesten Sachen,
die es in der Informatik gibt). Aber dafuer gibt es ja zum
Glueck vorbereitete Tools (flock, fcntl) :)
Aber hat durchaus geholfen.
Schoen.
Gruesse,
CK