CSV Probleme

inkwi

Mitglied
Hallo zusammen,

weiß jemand was der Unterschied zwischen CSV (Windows), CSV (MS-Dos) und dem "normalen" CSV Format ist, welche man in MS-Excel auswählen kann beim Speichern? Habe nämlich ein Problem mit einem PHP Skript welches ein csv-File einliest; wenn ich die Excel Tabelle unter CSV (Windows) abspeichere geht das Skript ansonsten nicht. Weiß jemand an was das liegen könnte?

Danke.

Gruß
inkwi
 
Hallo!

Prizipiell ist es kein Problem aus Excel gespeicherte CSV Dateien mit PHP auszulesen und weiter zu verarbeiten.
Dein Problem scheint also eher wo anders zu liegen.
Unpassende Trennzeichen für die einzelnen Zellen?
Mehrere Zellen miteinander verknüpft?
Evtl. auch ein Zeichen in denn Zellen verwendet was auch als Trennzeichen verwendet wird?

Ich denke ohne zu wissen wie deine CSV und dein Code aufgebaut ist, wird dir wohl niemand helfen können.
Auch geht aus deiner "Fehlerbeschreibung" nicht hervor was denn nicht hinhaut.

Gruss Dr Dau
 
Hi,
naja prinzipiell geht mein Skript ja. Aber es funktioniert halt nur wenn ich die excel Tabelle unter CSV (Windows) abspeichere, obwohl ich am Mac arbeite. :confused: Bei den anderen CSV Formaten wird immer nur eine riesen lange Zeile ausgegeben, d.h. irgendwie gibts da Probleme mit den Zeilenumbrüchen, die werden da wohl nicht erkannt. Die Dateien sehen übrigens im Editor alle gleich aus. Die CSV Dateien sind folgendermaßen aufgebaut:
bla;bla;bla
blub;blub;blub

Hier is mal bissel Code:


Code:
$id = fopen($filename, "r"); 
while ($line = fgetcsv($id, filesize($filename), ";")) {
$table[] = $line; 
$num = count ($table[0]);                      
}

Gruß
inkwi
 
Hmm, Mac hat CR, UNIX hat LF und Windows hat CR und LF als Zeilenumbruch.
Gut möglich dass dort das Problem liegt.

Hast Du es mal so versucht?
PHP:
while ($line = fgetcsv($id, filesize($filename), ";", "\r\n")) {
 
// oder so
while ($line = fgetcsv($id, filesize($filename), ";", "\n")) {
 
// oder so
while ($line = fgetcsv($id, filesize($filename), ";", "\r")) {
 
Zurück