Auslesen von Datein
Alex
- php
0 Tom0 Andy0 Tobias Kloth0 Tom
0 Johannes Zeller
Hollo,
ich habe nun endlich mit PhP begonnen.
Ich habe ein Problem mit dem Auslesen von Datein. Habe z.B. eine Anmeldung geschrieben. Diese specihert den Namen, das gewählte PW, die Emailadresse und die Zeit in sekunden ab. Und zwar so:
Name#PW#eMail#Datum
Name2#Pw2#eMail2#Datum2
Usw halt. Wie kann ich das ganze jetzt so auslesen, dass ich immer nur die 4 angaben eines Benutzers habe und mit diesen weiter arbeiten kann? Oder wie kann ich sowas überhaupt machen? Zu diesem Problem habe ich nichts finden können. Bitte helft mir.
MFG und THX schonmal.
Alex
Hello,
...
mit php gar nicht so einfach, weil php nur sehr umständlich Random Access Files unterstützt.
Bis zu 1000 Datensätzen kannst Du daher auch besser ein Mehrdimensionales Array aufbauen, das dann komplett serialisiert wird und in der Datei gespeichert wird.
Liebe Grüße aus http://www.braunschweig.de
Tom
Schau mal bei den beiden folgenden Befehlen nach.
fgets
strstr
Andy
Hallo Alex,
Name#PW#eMail#Datum
Name2#Pw2#eMail2#Datum2
Usw halt. Wie kann ich das ganze jetzt so auslesen, dass ich immer nur die 4 angaben eines Benutzers habe und mit diesen weiter arbeiten kann?
Einlesen kannst du die Datei mit file() (http://www.php.net/file) und Aufteilen geht am einfachsten mit explode() (->http://www.php.net/explode) - oder liegt das Problem wo anders?
Grüße aus Nürnberg
Tobias
Hello,
Hallo Alex,
Name#PW#eMail#Datum
Name2#Pw2#eMail2#Datum2
Usw halt. Wie kann ich das ganze jetzt so auslesen, dass ich immer nur die 4 angaben eines Benutzers habe und mit diesen weiter arbeiten kann?
Einlesen kannst du die Datei mit file() (http://www.php.net/file)
file() hat den unangenehmen Nachteil, dass es das Zeilenendezeichen am Ende der Zeile dranlässt. Das hängt dann nach der Aufteilung am letzten Feld jeder Zeile hinten dran. Das ist einfach ein Konstruktionsfehler von der Funktion.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
Einlesen kannst du die Datei mit file() (http://www.php.net/file)
file() hat den unangenehmen Nachteil, dass es das Zeilenendezeichen am Ende der Zeile dranlässt. Das hängt dann nach der Aufteilung am letzten Feld jeder Zeile hinten dran. Das ist einfach ein Konstruktionsfehler von der Funktion.
es lässt sich imho darüber Streiten, ob das ein Konstruktionsfehler ist, aber das Problem sollte sich imho mit $array = array_map('trim', $array); o.ä. lösen lassen (ich habe es aber noch nicht ausprobiert).
Grüße aus Nürnberg
Tobias
Hallo Alex,
Name#PW#eMail#Datum
Name2#Pw2#eMail2#Datum2Usw halt. Wie kann ich das ganze jetzt so auslesen, dass ich immer nur die 4 angaben eines Benutzers habe und mit diesen weiter arbeiten kann? Oder wie kann ich sowas überhaupt machen? Zu diesem Problem habe ich nichts finden können. Bitte helft mir.
Wenn es nur wenige Einträge sind könntest du es relativ einfach machen, indem du die gesamte Datei in ein Array einliest und dieses dann mit einer foreach-Schleife durchläufst.
function benutzer_daten($benutzer)
{
$lines = file('blubb.txt');
foreach($lines as $line) {
$eintrag = explode('#', $line);
if($eintrag[0] == $benutzer) {
return $eintrag;
}
}
return NULL;
}
Ansonsten würde ich, wie Tom schon vorgeschlagen hat, mir mal die Funktionen serialize() (http://www.php.net/manual/en/function.serialize.php) und unserialize() (http://www.php.net/manual/en/function.unserialize.php) angucken.
Vielleicht hast du aber auch irgendeine Datenbank zur Verfügung, die könntest du dafür sicher gut einsetzen.
Schöne Grüße,
Johannes