我使用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
,但没有区别。
知道如何解决这个问题吗?
答案 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");