CSV-Datei einlesen

WIK-Lars

Erfahrenes Mitglied
Hallo,

ich möchte eine mit Excel erstellte CSV-Datei auslesen. Wenn ich mit dem unten geschriebenen Code dies Versuche, versucht mein Browser (IE 6) stundenlang die Datei zu öffnen. Es passiert also im Browser gar nichts und irgendwie stürzt er dann so ab, dass er sich nicht einmal mehr vernünftig schließen läßt ( es kommt dann die 'Sofort beenden'-Meldung und wenn ich dort den Button 'Sofort beenden' drücke wird der Browser immer noch nicht geschlossen. Dieses Spielchen kann ich dann ziemlich häufig wiederholen, bis der Browser tatsächlich geschlossen wird).
So, hier mein Code:
PHP:
<html> 
<body> 
<table> 

<? 
$datei = fopen("Adressen.csv", "r"); 
$daten = fgetcsv($datei, 10); 
while($daten) 
{ 
?> 

<tr> 

<? 
for($i=0; $i<count($daten); $i++) 
{ 
?> 

<td><? echo $daten[i]; ?></td> 
<? 
} 
?> 

</tr> 

<? 
} 
fclose($datei); 
?> 

</table> 
</body> 
</html>

Vielleicht erkennt ja schon jemand auf den ersten Blick, was nicht stimmt.
Danke für Hilfe,
Lars
 
Orientier dich mal an dem Beispiel auf php.net.
PHP:
<?php
$row = 1;                                      // Anzahl der Arrays
$handle = fopen ("test.csv","r");              // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ",")) !== FALSE ) { // Daten werden aus der Datei
                                               // in ein Array $data gelesen
   $num = count ($data);                      // Felder im Array $data
                                               // werden gezählt
   print "<p> $num fields in line $row: <br>\n";
   $row++;                                    // Anzahl der Arrays wird
                                               // inkrementiert
   for ($c=0; $c < $num; $c++) {              // FOR-Schleife, um Felder
       print $data[$c] . "<br>\n";            // des Arrays auszugeben
   }
}
fclose ($handle);
?>
 
Zuletzt bearbeitet:
Ich habe Dein Beispiel mal ausprobiert und weiß jetzt, wo der Haken ist: das Array besteht immer nur aus einem Feld. Das ist doch schon merkwürdig, denn im Browser wird folgendes ausgegeben:


1 fields in line 1:
Vorname;Name;Postleitzahl;Ort

1 fields in line 2:
Lars;Schmidt;63303;Dreieich
1 fields in line 3:
Lars;Schmidt;33102;Paderborn

1 fields in line 4:
Jens;Schmidt;;Saerbeck
1 fields in line 5:
Anke;Schmidt;;Warendorf

Das heißt, in meinem Fall trennt fgetcsv nicht die Zeile an den Stellen des Semikolons in verschiedene Felder. Hm...eigentlich dachte ich, genau dafür wäre fgetcsv da...anscheinend kann die Funktion aber nur mit Komma...? :(
 
Zurück