JennyE: [gelöst] Datei-Download HTTP-Header vs. FTP - Dateigröße verschi

Beitrag lesen

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 das ebenfalls erwartet und mir deshalb keinen Kopf um Schwierigkeiten in dieser Richtung gemacht.

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:

Nein, ich beziehe mich auf einen User-Comment darunter:
[quote]
 - the original function didn't correctly return the length of the data outputted
[/quote]

Wie auch immer, ich erzeuge die Daten jetzt nicht mehr mit fputcsv(), sondern nach Alter-Väter-Sitte von "Hand" mit den entsprechend Zeilenumbrüchen.

  
[schnipp]  
$line = '';  
foreach ($csvList as $fields) {  
//    fputcsv($fp, $fields, ";", "'");  
	foreach($fields as $k => $v) {  
		if($k < 15) {  
			$line .= is_string($v) ? "\"".$v."\";" : $v.";";  
		} else {  
			$line .= is_string($v) ? "\"".$v."\"\r\n" : $v."\r\n"; $v."\r\n";  
		}  
	}  
}  
[schnapp]  

Mit dem Ergebnis daraus ist alles gut und Lexware importiert korrekt. :)

Vielen Dank nochmal bei der Analyse und damit verbundenen Lösung des Problems.

LG an Alle
Jenny