1

我想将一些东西从一个 php 站点发送到另一个站点。在第一个站点,一切似乎都很好。字符串看起来像

--show="作者、书籍、文本/n

但是当我收到后检查字符串时,它看起来像

--show="作者、书籍、文本/r/n

有问题,不知何故它/r最终添加了。

第一个php:

$(document).ready(function() {
    $("#column_button").click(function(){
        var selected = [];
        $.each($("input[name='checkbox_columns']:checked"), function(){            
           selected.push($(this).val());
        });

        var data = new FormData();
        data.append("data", "--show=" + selected);
        //alert(JSON.stringify(selected));
        var ajax = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
        ajax.addEventListener("load", statusHandler2, false);
        ajax.open( 'post', 'showParameter.php', true );
        ajax.send(data);
        _("column_button").disabled=true;        
    });
});

第二个php:

if(!empty($_POST['data'])){
    $data = $_POST['data'];}

所以选择显示它正确,但如果我检查第二个 php 中的 $data,那就错了。

4

1 回答 1

2

这似乎是服务器使用不同行尾类型的问题。Unix 系统(Linux、BSD 等)默认使用\nLF),MacOS 使用\rCR),而 Windows 系统使用\r\n(也称为CRLF)。您可能需要将其中一台服务器上的字符编码更改为另一台服务器。

CR= 回车 LF= 换行

您可以使用仅用 LF 替换 CRLF 或 CR 的代码。此页面显示了如何简单地实现这一目标。

于 2015-10-21T15:07:22.623 回答