php - .serialize() 方法添加\r 到换行符?

标签 php jquery

根据这个答案https://stackoverflow.com/a/2115554/2311074我认为 json_encode 将换行符存储为 \n 还是 \r\n 取决于操作系统。然而,我今天发现我可以在同一操作系统 (Ubuntu) 上使用 json_encode 生成两个输出。

考虑这个例子

  <form id='form'>
     <textarea id='amd' name='stuff'></textarea>
  </form> 
  <button id='lol'>Press Me</button>

使用 jQuery

$( document ).ready(function() {
  $('#lol').click(function(){
    var text = $('#amd').val();

    $.ajax({
          type: "POST",
          url: ajax.php,
          data: {stuff: text}
      });
 });

和下面的ajax.php

$text = $_POST['stuff'];
file_put_contents('test.txt', json_encode($text));

现在输入以下内容

enter image description here

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

"this is a \nbreak up"

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

data: $('#form').serialize()

然后我在text.txt中找到以下内容

"this is a \r\nbreak up"

为什么serialize()会在我的换行符处生成这个额外的\r\n?我什至不使用 Windows。

最佳答案

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

关于php - .serialize() 方法添加\r 到换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44268924/

相关文章:

php - 如何从 PHP 脚本在 joomla 3.0 中插入和发布新闻

PHP - 检查图像是加载到 img src 内还是直接加载到浏览器内?

javascript 将值发送到 PHP 中的 $_POST

php - 可以使用包含变量的表名遍历 mySQL(使用 PHP)中的表吗?

javascript - 结合 youtube 自动完成搜索框的 js 和 html 代码。

javascript - 如何将 iFrame 嵌入外部网站

php - 如何根据在 Google 上搜索的字词为自定义网址编制索引

javascript - jQuery 插件,对每个 jQuery 对象进行操作然后执行最终语句的函数

javascript - 如何使用 jQuery 访问模式对话框中的 id?

jquery - 从 microsoft Ajax.BeginForm 迁移到 jquery