Ich benutze jQuery, um einen Link zu liefern, wo Benutzer eine TXT-Datei herunterladen können. jQuery ruft nur den Inhalt eines Textbereichs ab und legt ihn als href-Attribut fest. Dies ist notwendig, da der Inhalt des Textfelds mit der Antwort eines Ajax-Aufrufs festgelegt wird.Erstellen Sie TXT-Datei mit jQuery - Zeilenumbrüche erhalten
Der Download der Datei funktioniert wie folgt:
$(document).on('click', '#download', function(){
$(this).attr('href','data:text/plain;charset=utf-8,' + encodeURIComponent($('#kundendaten').val()));
});
Ein Teil der Anruf Antwort Ajax ist das Textfeld:
$kundendaten = '<textarea id="kundendaten">';
$kundendaten .= 'Name: '. $_POST['nachname'] .' '. $_POST['vorname'] . PHP_EOL;
$kundendaten .= 'Email: '. $_POST['email'] . PHP_EOL;
$kundendaten .= '</textarea>';
Unter Mac OS ich eine TXT-Datei mit Zeilenumbrüche erhalten und alles ist in Ordnung. Unter Windows fehlen die Zeilenumbrüche in der TXT-Datei. Ich versuchte auch \n
anstelle von PHP_EOL
, aber es gab keinen Unterschied.
Irgendeine Idee, wie ich das lösen kann?
können Sie versuchen, verwenden '„\ r \ n“' für Zeilenumbrüche statt 'PHP_EOL' Denken Sie daran, sie in doppelte Anführungszeichen setzen – DasSaffe
auf Fenster, die Sie? '\ r \ n' benötigt - es sei denn, Sie öffnen die Datei in einem Texteditor, der DOS-formatierte Zeilenumbrüche unterstützt. Es ist also eine Frage des Betriebssystems und des Editors. –
Die 'PHP_EOL'-Konstante enthält die Zeilenumbruchsequenz _on der Server side_.Das hat offensichtlich nichts mit der Client-Seiten-Sequenz zu tun .. – arkascha