Kopfballstar
Erfahrenes Mitglied
Hallo,
folgendes Problem tritt auf. Ich lese eine Datei aus mit:
$Dateizeiger = fopen($csv_file , "r");
und dann
while(($Daten = fgetcsv($Dateizeiger, 1000, ";")) !== FALSE)
{...}
Wie man sieht ist das Trennzeichen ein Semikolon und wird auch in der Funktion fgetcsv so angegeben. Aber blöderweise seperiert diese Funktion erstmal gar nicht richtig, sondern es wird ein Array der Größe 2 erstellt. An Position 1 befindet sich der gesamte String des CSV File (also xyz; xyz; xyz; ...). Erst nach dem letzten Semikolon wird separiert und somit ist Position 2 des Array leer.
Nun teile ich den String im Array[0] mit EXPLODE.
explode(";", $Daten[0])
Aber dadurch wird der String nicht richtig getrennt. Er wird zwar nach einem Semikolon getrennt, aber eben auch nach einem Komma ( "," ). Wieso das? In dem String kommt auch genau einmal ein "," vor, dort darf aber nicht getrennt werden.
Zähle ich die Kommas mit
echo substr_count($Daten[0], ',');
wird dann komischerweise keins gefunden...
folgendes Problem tritt auf. Ich lese eine Datei aus mit:
$Dateizeiger = fopen($csv_file , "r");
und dann
while(($Daten = fgetcsv($Dateizeiger, 1000, ";")) !== FALSE)
{...}
Wie man sieht ist das Trennzeichen ein Semikolon und wird auch in der Funktion fgetcsv so angegeben. Aber blöderweise seperiert diese Funktion erstmal gar nicht richtig, sondern es wird ein Array der Größe 2 erstellt. An Position 1 befindet sich der gesamte String des CSV File (also xyz; xyz; xyz; ...). Erst nach dem letzten Semikolon wird separiert und somit ist Position 2 des Array leer.
Nun teile ich den String im Array[0] mit EXPLODE.
explode(";", $Daten[0])
Aber dadurch wird der String nicht richtig getrennt. Er wird zwar nach einem Semikolon getrennt, aber eben auch nach einem Komma ( "," ). Wieso das? In dem String kommt auch genau einmal ein "," vor, dort darf aber nicht getrennt werden.
Zähle ich die Kommas mit
echo substr_count($Daten[0], ',');
wird dann komischerweise keins gefunden...