Hello Marco,
das kann man ja nicht mit ansehen, wie Du leidest ;-)
Nochmal die zwei Tipps.
Voraussetzung: es werden nicht zuviele Adressen (so ca. 400-500 entsprechend ca. 100k mit Zusatzdaten sollten die Grenze bleiben)
Wenn nur die email-@ gespeichert werden sollen, kannst Du mit einer Adresse pro Zeile und mit file() arbeiten.
Da Du aber zur Bearbeitung sowieso die ganze Datei einlesen musst, kannst Du auch gleich mit
$email1 = "tom@bitworks.de";
$_mails = array();
$_mails[$email1] = array();
$_mails[$email1]['vorname'] = "Thomas";
$_mails[$email1]['alter'] = "uHu";
$_mails['marco@web.de']['vorname'] = "Marco";
$_mails['marco@web.de']['alter'] = "unbekannt";
usw. arbeiten.
Lass Dir das Array mal zur Kontrolle mit
echo "<pre>";
print_r($_mails);
echo "</pre>";
ausgeben.
Das Array serialisierst Du dann mit
$data = serialize($_mails);
und schreibst es weg mit
Dateihandle zum Schreiben besorgen möglich ?
Datei locken möglich ?
Datei schreiben mit fwrite($fh,$data);
Datei schließen
(Lock verschwindet dann automatisch)
Und wenn Du was ändern willst:
Dateihandle zum Lesen und Schreiben ("r+") besorgen möglich ?
Datei locken möglich ?
Datei auslesen bis zum Ende mit fread($fh,$data,filesize($dateiname));
array wiederherstellen mit $_mails = unserialize($data);
Neue Daten reinscheriben ins Array:
$_mails['tom@bitwiorks.de']['vorname'] = "Thomas Jürgen";
$_mails['tom@bitwiorks.de']['alter'] = "45";
Wenn der Eintrag vorhanden war, wird er überschreiben, wenn er neu ist, wird er angelegt.
Und wenn Du einen Empfänger löschen willst:
if (isset($_mails["loesch@mich.nie"])) unset($_mails["loesch@mich.nie"]);
und weg ist er.
array serialisieren mit $data = serialize($_mails);
und wegschreiben:
fseek($fh, 0); # weil der zeigen am Ende stand und nicht am Anfang
ftruncate($fh, 0); # Datei leer machen. Nur nötig, wenn das neue
Array kleiner ist, als das alte.
Daten zurückschreiben
fwrite($fh, $data);
Datei schließen
(Lock verschwindet dann automatisch)
Wenn Du Dein Programm fertig hast, Postest Du das hier nochmal (den Link auf ein *.txt) dann schau ichs nochmal an.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen