Php .serialize()方法是否将\r添加到换行符?

Php .serialize()方法是否将\r添加到换行符?,php,jquery,Php,Jquery,根据这个答案,我认为json\u encode是否将换行符存储为\n或\r\n取决于操作系统。然而,我今天发现,我可以在同一个操作系统(Ubuntu)上使用json\u encode生成这两个输出 以这个例子为例 <form id='form'> <textarea id='amd' name='stuff'></textarea> </form> <button id='lol'>Press Me</bu

根据这个答案,我认为
json\u encode
是否将换行符存储为
\n
\r\n
取决于操作系统。然而,我今天发现,我可以在同一个操作系统(Ubuntu)上使用
json\u encode
生成这两个输出

以这个例子为例

  <form id='form'>
     <textarea id='amd' name='stuff'></textarea>
  </form> 
  <button id='lol'>Press Me</button>
以及下面的ajax.php

$text = $_POST['stuff'];
file_put_contents('test.txt', json_encode($text));
现在进入以下内容

将在
text.txt中写入以下内容

“这是一个\n故障”

但是,如果我将jQUery脚本中的数据属性更改为

data: $('#form').serialize()
然后我在
text.txt

“这是一个\r\n故障”


为什么serialize()会将此附加的
\r
生成到我的换行符\n?我甚至不用windows。

所以答案很简单。jQuery
serialize()
正在添加
\r\n
,因为开发人员是这样编码的。您可以在中看到代码。它们将所有出现的
/\r?\n/g
替换为
\r\n

客户端和服务器都是Ubuntu?为什么是idk,但如果是这种情况,唯一的解决方案是:
file\u put\u contents('test.txt',str\u replace('\r\n',PHP\u EOL,json\u encode($text))@Mat是。我在ubuntu上使用Xampp,所以客户端和服务器甚至完全相同。我也在一个真正的Ubuntu服务器上用不同的Ubuntu和Win7客户端进行了尝试,结果是一样的。
data: $('#form').serialize()