PHP .txt Datei auslesen

Mirko D

Erfahrenes Mitglied
Hallo,
ich hab da ein kleines Problem.

Ich habe eine .txt Datei die folgende Struktur aufweist.

-Name
-Strasse / Nr
-Ort
-Plz
-Telefonummer
-Faxnummer
-Emailadresse
-Homepage

Meine Frage:

Wie kann ich diese Datei auslesen und nacheinander in eine Datenbank einfügen ohne das diese Datei ein wirkliches Muster besitzt, außer das die Daten immer in derselben Reihenfolge stehen.

Also ich habe auch keine trennzeichen oder sonstiges.
Gibt es dennnoch eine Möglichkeit die Daten richtig auszulesen und in eine Datenbank zu schreiben.

Für Vorschläge Denkanstösse und etwaiges wäre ich sehr dankbar.

GreeTZ Mirko
 
Zuletzt bearbeitet:
Wenn die Daten kein Trenn Modifer verwenden, schätze ich das du so klug bist und die Daten wenigstens untereinander schreibst.

Dann kannst du diese mit [phpf]file[/phpf] einlesen und speichern.
Die Funktion [phpf]file[/phpf] liest nämlich einen kompletten Datensatz einer kompletten Zeile ein. Diese kannst du dann dem entsprechend bearbeiten.

In diesem Sinne

P.S. dies funktioniert ebenfalls mit fgets . Erkundige dich auf php.net für weitere Infos
 
Hi

Danke schonmal für deine Antwort. Aber jetzt noch eine Frage

Die Datei sieht ja so aus

-Name
-Strasse / Nr
-Ort
-Plz
-Telefonummer
-Faxnummer
-Emailadresse
-Homepage

Geht das denn auch mit dem file() das meine Datenbank später so aussieht.

-Name -Strasse / Nr -Ort -Plz -Telefonummer -Faxnummer -Emailadresse -Homepage

Also das sollen ja alle Felder pro Datensatz sein.

Naja ich werde das jetzt erst einmal ausprobieren. Glaube aber eher nicht das es so funktionieren wird.

GreeTZ Mirko
 
Merke, wenn das jeweils in einer neuen Zeile steht, hast du doch ein Trennzeichen, nämlich \n :rolleyes: aber die Möglichkeit über [phpf]file[/phpf] ist schon besser.
 
Hi

Hab das jetzt über die Funktion file() gemacht.
Das Script trägt mir das nun auch alles in die Datenbank ein.

Nur leider alles untereinander anstatt so wie ich das möchte nebeneinander in die richtigen felder.

ich sehe das doch richtig das wenn ich

PHP:
$datenneu=explode('\n',$daten[$i]) // zum auflösen
 // das ich dann
$datenneu[0];
$datenneu[1];
$datenneu[2];
//usw.

bekomme.

Also wie könnte ich das in etwa noch lösen. Das auch die Daten an Ihre richtige Stelle kommen.

GreeTZ Mirko
 
Künftig sollte ich mal..

Naja ich sollte eventuell mehr lesen, weil es mit \n nicht funktioniert. Alle daten müssen ja in einer zeile stehen. Da hatte das auch mit dem Eintrag in die Datenbank funktioniert. Naja Trotzdem danke.

Der Thread kann somit geschlossen werden.

GreeTZ Mirko
 
Ich muss das Thema doch noch mal Aufgreifen

Also hier noch einmal meine Frage. Kann ich aus einer Datendatei in der alle Daten untereinander stehen wie z.B.:

  1. Name
  2. Strasse
  3. PLZ ORT
  4. email
  5. tele
  6. fax
  7. homepage

so in meine Datenbank eintragen das alle zugehörigen Felder also Zeile 1 bis 7 zu einem Datensatz gehören? Momentan bekomm ich das nur so hin das er mir für jede zeile einen neuen Satz erstellt. Und das ist schei..e. Also ich hab mir schon alles mögliche durchgelesen und komm da einfach nicht weiter und ich habe auch irgendwie keine wirkliche Lust dazu die ganzen Daten via Handarbeit :( einzutragen. Für jeden Denkanstoss und kleine Hilfestellung bin ich sehr dankbar

Gruß Mirko
 
Also, ich gehe jetzt mal davon aus, dass du eine Textdatei hast in der diese Datensätze immer und immer wieder untereinander stehen. In Zeile 8 steht also wieder der Name, richtig?
PHP:
$a_fileContents = file("datei.txt");
$i=0;
while($i<count($a_fileContents)){
 $a_temp[] = $a_fileContents[$i];
  if($i%7 == 0) {
    $query = "INSERT INTO 
				`tabelle` (`name`,`strasse`,`plzort`,`email`,`tel`,`fax`,`homepage`)
				VALUES ('".$a_temp[0]."',
						'".$a_temp[1]."',
						'".$a_temp[2]."',
						'".$a_temp[3]."',
						'".$a_temp[4]."',
						'".$a_temp[5]."',
						'".$a_temp[6]."')";
	mysql_query($query) or die(mysql_error());
	unset($a_temp);
  }
 $i++;
}
Müsste soweit eigentlich klappen.
 
You are my Hero

danke dir es klappt soweit. Jetzt musste ich nur feststellen das ich nicht immer die selben Felder habe. Aber das bekomme ich dann schon hin. Ein guter Schbs in die richtige Richtung.

:-)

Danke Dir

Gruß Mirko
 
Zurück