Wie kann ich das ändern die Zeilenenden verwendet fputcsv?

Erstelle ich eine CSV-Datei zum download von unserem client mit

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

und mit fputcsv() zum schreiben von Daten in eine CSV-Datei, die heruntergeladen wird, die durch den client.

Ich bin PHP läuft auf Linux und damit die Zeilenenden sind nicht interpretiert, von vielen Windows-Anwendungen.

Ich könnte schreiben, die CSV-Datei in ein Verzeichnis auf dem server, Lesen Sie es wieder an und führen Sie eine str_replace() aus \n zu \r\n, aber das erscheint mir doch ziemlich klobig Möglichkeit, das problem zu lösen. Gibt es eine Möglichkeit, die Konvertierung durchzuführen, ohne eine physikalische Datei?

  • Es sei denn, der Nutzer ist das öffnen der Datei in einem Windows-text-editor, erfordert CRLF, oder einige ziemlich alte Windows-apps, dann sollte es nicht eigentlich egal... die meisten Windows-Anwendungen in diesen Tagen erkennen, ein einfaches LF statt
  • Sorry für +1 Sie wurden im Jahre 1337, die meisten würdevollem rep. Aber deine Frage interessiert mich keine Möglichkeit, das zu ändern escape-char auch...
  • Ja, das ist, was ich erwartet hatte. Leider sind Sie den Import der CSV in einigen MIS, die Sie verwenden, die nicht angezeigt werden jegliche klüger, als Editor in dieser Hinsicht.
  • Haben Sie Lesen Sie die Kommentare in der " Bedienungsanleitung für fputcsv? lv.php.net/manual/en/function.fputcsv.php#90883
  • Ja, ich sicherlich haben, und ich konnte zurückgreifen auf die spezifische Funktion Sie im Zusammenhang mit, aber ich wollte fputcsv() und konvertieren nur die Zeilenenden danach, anstatt die Replikation der gesamten Funktionalität von fputcsv() und das hinzufügen der Zeile Ende der Konvertierung. Die PHP user-Noten sind nicht immer die beste Quelle. Das ist, warum ich hierher komme 🙂
  • Sie finden eine brillante und kurze Lösungen hier: die Einstellung Custom Line Endings in fputcsv()

InformationsquelleAutor Kalessin | 2012-10-04
Schreibe einen Kommentar