Códigos fputcsv y nueva línea

Estoy usando fputcsv en PHP para generar un archivo delimitado por comas de una consulta de base de datos. Al abrir el archivo en gedit en Ubuntu, parece correcto: cada registro tiene un salto de línea (no hay caracteres visibles de salto de línea, pero puede ver que cada registro está separado, y abrirlo en la hoja de cálculo de OpenOffice me permite ver el archivo correctamente).

Sin embargo, estamos enviando estos archivos a un cliente en Windows, y en sus sistemas, el archivo viene como una gran línea larga. Al abrirlo en Excel, no reconoce múltiples líneas en absoluto.

He leído varias preguntas aquí que son bastante similares, incluyendoéste, que incluye un enlace a lo realmente informativoGran cisma de nueva línea explicación.

Desafortunadamente, no podemos simplemente decirles a nuestros clientes que abran los archivos en un editor "más inteligente". Deben poder abrirlos en Excel. ¿Hay alguna forma programática para garantizar que se agreguen los caracteres correctos de nueva línea para que el archivo se pueda abrir en un programa de hoja de cálculo en cualquier sistema operativo?

Ya estoy usando una función personalizada para forzar comillas alrededor de todos los valores, ya que fputcsv es selectivo al respecto. He intentado hacer algo como esto:

function my_fputcsv($handle, $fieldsarray, $delimiter = "~", $enclosure ='"'){

        $glue = $enclosure . $delimiter . $enclosure;

    return fwrite($handle, $enclosure . implode($glue,$fieldsarray) . $enclosure."\r\n");

}

Pero cuando el archivo se abre en un editor de texto de Windows, todavía aparece como una sola línea larga.

Respuestas a la pregunta(8)

Su respuesta a la pregunta