使用jQuery创建txt文件 - 保留换行符

时间:2016-06-16 08:00:53

标签: php jquery text-files

我使用jQuery来提供用户可以下载.txt文件的链接。 jQuery只获取textarea的内容并将其设置为href属性。这是必要的,因为textarea的内容是通过ajax调用的响应来设置的。

下载文件的方式如下:

$(document).on('click', '#download', function(){
  $(this).attr('href','data:text/plain;charset=utf-8,' + encodeURIComponent( $('#kundendaten').val() ) );
});

Ajax调用响应的一部分是textarea:

$kundendaten = '<textarea id="kundendaten">';
   $kundendaten .= 'Name: '. $_POST['nachname'] .' '. $_POST['vorname'] . PHP_EOL;
   $kundendaten .= 'Email: '. $_POST['email'] . PHP_EOL;
$kundendaten .= '</textarea>';

在Mac OS上我得到一个带换行符的.txt文件,一切都很好。在Windows上虽然.txt文件中缺少换行符。我还尝试了\n而不是PHP_EOL,但没有区别。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

PHP_EOL仅适用于它运行的系统,因此如果您的网站托管在Linux机器上,它将执行EOL到Linux标准。

以下是您最好的选择。

$kundendaten = '<textarea id="kundendaten">' . "\r\n";
   $kundendaten .= 'Name: '. $_POST['nachname'] .' '. $_POST['vorname'] . "\r\n";
   $kundendaten .= 'Email: '. $_POST['email'] . "\r\n";
$kundendaten .= '</textarea>' . "\r\n";

另外如果你在整个文件中经常使用它,我会创建一个常量引用“\ r \ n”并使用它。 (如果我记得正确的语法,如下;

DEFINE("_EOL", "\r\n");