Daten ersetzen

Hallo Leute,

ich hab mal wieder ein kleines/großes Problem – wo ich einfach nicht weiter komme!

Über ein Formular möchte ich Daten in eine Config-Datei schreiben (ersetzen)…

Config-Datei hat folgenden Aufbau:

Andreas|Drexler|17.06.1982

Jetzt möchte ich den Geburtstag über ein Formular ersetzen!

$cfg[2] = $_POST[‚geburtstag‘];

$user_cfg = implode("|", $cfg);
$datei = fopen(„test.dat“, „r+“);
fwrite($datei, $user_cfg);
fclose($datei);

Das Problem ist … er schreibt mir immer die Daten ganz links!!!

so etwa: 01.07.1900|Andreas|Drexler|17.06.1982

Es soll aber so sein … Andreas|Drexler|01.07.1900

Hat jemand eine Idee???

Gruß, Andreas

Die Antwort auf deine Frage ist
http://de.php.net/fopen

dort steht
‚r+‘ Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.

Du willst aber wohl das hier
‚a‘ Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

bzw. ‚a+‘

Hoffe das kann dir helfen

Gruß Lamer

Hallo Lamer,

danke für die Antwort! :smile:

Hilft mir aber nicht wirklich weiter, da er einfach
„rechts“ die Daten anfügt werden :frowning:

Gruß, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wenn Deine Datei nur diesen einen Datensatz enthalten soll: fopen() mit ‚w‘.

Wenn das nicht der Fall ist, ist das eine ganz typische Datenbankanwendung.

Wenn Du keine Datenbank anwenden willst/kannst, wirst Du die Datei in einer Schleife Zeile für Zeile bearbeiten müssen:
Auslesen mit fgets(), Abgleichen mit Deinen Ergebnissen und dann den originalen oder ersetzten Inhalt erstmal in einer Variablen stückweise wieder zusammenbasteln.
Abschließend öffne mit fopen(‚w‘,…), das löscht den bisherigen Dateiinhalt, und schreibe die Variable in Deine Datei.

Auf jeden Fall muss Dir erst mal klar sein, bei welchen Übereinstimmungen die Zeile ersetzt werden soll - Nachname? Nachname + Vorname?

Und hatte ich erwähnt, dass das alles soooo einfach mit einer Datenbank wäre ?!

Hallo Eckse,

danke für deine Hilfe!

Mit Datenbanken bin ich gar nicht fit!" :frowning:

Mal eine andere Idee…

Wenn ich einen Array so nach dem Schema…

$test[0] = „rot“;
$test[1] = „gruen“;
$test[2] = „blau“;

habe … dann einfach sage …

$test[1] = „rosa“; …

und dann einfach sage „print_r($test);“

Ausgabe:

$test[0] = „rot“;
$test[1] = „rosa“;
$test[2] = „blau“;

geht sowas überhaupt!

Danke, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hmmm …
Antwort von Radio Eriwan: im Prinzip ja!

Ein Problem ist das Auslesen der Variablen - das Textfile einfach per include() einzubinden geht nicht, da Du sonst nicht schreiben kannst. Und wenn Du es mit readfile() o.ä. ausliest hast Du einen einzigen String, kein Array.
Du wirst den String nach dem Auslesen also noch interpretieren müssen - und das geht mit eval(). Hoffe ich zumindest.

Gruß, Eckse

Ergänzung: was Du dann zum Schreiben der Variablen brauchst ist eine Kombination aus var_dump() und fwrite().

Hallo Eckse,

ich habe noch ein wenig rum programmiert!

Über die Funktion „explode“ und „implode“ habe ich
eine ganz gute Lösung gefunden!!

Danke noch für die Hilfe!

Gruß, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]