mehrere Variablen in datei

Voggi

Gesperrt
Hallo
ich möchte mehrere Variablen in eine Datei schreiben. Also z.B. Vorname und Nachname. So weit hab ich's schon:
PHP:
$entrydat = fopen("./data/entry.txt","a");
$input = array($name, $comment);
fputs($entrydat, $input); 
fclose($entrydat);

wenn ich es so lasse schriebt er mit in die Datei einfach Array rein. Wie kann ich es machen, dass er mir alles reinschreibt?
 
$entrydat = fopen("./data/entry.txt","a");
$input = $name."|".$comment;
fputs($entrydat, $input);
fclose();

auslesen mit explode();...
 
Eine andere Möglichkeit, für den Fall dass du schon alle Daten in einem Array stehen hast, wäre [phpf]serialize[/phpf].
Du wendest einfach diesen Befehl auf dein Array an, speicherst das Ganze in der Textdatei. Auslesen funktioniert dann mit [phpf]unserialize[/phpf].
 
Serialize macht auf Deutsch nichts anderes als die Daten Variablen in Strings umzusetzen.
Das hatt den vorteil das du z.b. komplete Objekte abspeichern kannst usw..
jemand der schonmal einen Serverstatusscript geschrieben hatt und sich gewundert hatt wieso die Daten die man per Socket bekommt so komisch aussehen,
die Antwort ist einfach
das ist das ergebnis eines Serialize
praktisch wird auf der Server seite ein Objekt oder eine Array oder was auch immer erstellt
dann wird es Serializiert und abgeschickt
auf der gegenseite wird es dann entserializiert und das Ergebnis ist ein geordnetes Objekt so wie es erstellt wurde.
Vorteil:
man kann Daten als Objekte oder Variablen abspeichern.
Nachteil:
die grösse eines serializierten Objektes ist deutlich grösser als das Objekt selbst im Speicher da sie ja als String gespeichert werden müssen
 
das ganze in ein Array zu stecken und zu serialisieren halte ich auch für die beste und einfachste lösung. Du musst nur mit langen Fließkommazahlen aufpassen, die werden irgendwann gerundet.
Ist aber ind er php.ini einstellbar:
; When floats & doubles are serialized store serialize_precision significant
; digits after the floating point. The default value ensures that when floats
; are decoded with unserialize, the data will remain the same.
serialize_precision = 100

Gruß
TiM
 
Zurück