Hi,
Wie wird denn diese Datei erzeugt? Ich bin bisher davon ausgegangen, dass diese Erzeugung in deiner Verantwortung liegt und du folglich selbst Hand anlegen kannst/musst.
Ja, die Erzeugung liegt in meiner Hand. fputcsv() erzeugt sie nach einer entsprechenden Datenbankabfrage und einem daraus erzeugtem Array.
das PHP-Manual sagt dazu:
"fputcsv() formats a line (passed as a fields array) as CSV and write it (terminated by a newline) to the specified file handle."
Entscheidend ist hier IMO die Klammer "terminated by a newline". Ich würde erwarten, dass newline hier der auf dem Server-System übliche Code für einen Zeilenumbruch ist - auf einem Linux-Host wie in deinem Setup also \n. Tatsächlich enthält deine Datei aber \r stattdessen. Sehr merkwürdig.
Ich habe aber fputcsv() selbst noch nicht benutzt und kann daher nicht viel dazu sagen.
Habe aber gerade schon auf php.net gelesen, dass einige mit fputcsv() und korrekten "\r\n" Schwierigkeiten haben. Das wird auch in diesem Fall das Problem sein.
Wo hast du das gelesen? Ich vermute, du beziehst dich auf diese Passage:
"Note: If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the auto_detect_line_endings run-time configuration option may help resolve the problem."
Das betrifft dann aber nicht das Erzeugen einer CSV-Datei mit fputcsv(), sondern das Lesen einer solchen mit fgetcsv(), wenn sie auf einem Mac erzeugt wurde. Tatsächlich haben alte MacOS-Versionen ein einzelnes \r als Zeilenumbruch verwendet. Das ist aber AFAIK schon lange passé.
Ciao,
Martin
Auch mit eckigen Radios kann man Rundfunk hören.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(