Comment puis-je changer de fins de ligne utilisé par fputcsv?

J'ai créer un fichier CSV à télécharger par notre client à l'aide de

$output = fopen('php://output', 'w');

et à l'aide de fputcsv() écrire des données dans un fichier CSV qui est téléchargé par le client.

Je suis en cours d'exécution de PHP sur Linux et par conséquent les fins de ligne ne sont pas interprétées par la plupart des applications Windows.

Je pourrais écrire le fichier CSV dans un répertoire sur le serveur, le lire et effectuer un str_replace() de \n à \r\n, mais cela semble assez maladroit moyen de résoudre le problème. Est-il un moyen pour effectuer la conversion, sans la création d'un fichier physique?

À moins que l'utilisateur ouvre le fichier dans un éditeur de texte Windows qui nécessite CRLF, ou certaines assez anciennes applications Windows, alors il ne devrait pas vraiment d'importance... la plupart des applications Windows ces jours ne reconnaître d'un simple LF au lieu
Désolé pour les +1 que vous étiez au 1337, le plus gracieux rep. Mais votre question m'intéresse, pas moyen de changer escape char trop...
Oui, c'est ce que j'attendais. Malheureusement, ils sont de l'importation du fichier CSV dans certains SIM qu'ils utilisent, ce qui ne semble pas être plus intelligent que le bloc-notes à cet égard.
Avez-vous lu les commentaires dans le manuel pour fputcsv? lv.php.net/manual/en/function.fputcsv.php#90883
Oui, j'ai certainement, et j'ai pu retomber sur la fonction spécifique est lié, mais je voulais utiliser fputcsv() et tout simplement de convertir les fins de ligne par la suite, plutôt que de reproduire l'intégralité des fonctionnalités de fputcsv() et l'ajout de la ligne fin de la conversion. L'utilisateur PHP notes ne sont pas toujours les meilleures ressources. C'est pourquoi je viens ici 🙂

OriginalL'auteur Kalessin | 2012-10-04