如何防止JSON中的新线路被清理?

时间:2016-01-25 06:02:34

标签: php curl

基本上,我想将textpost数据发送到外部api,但文本需要新行,服务器正在使用的新行是\ n。

问题是每次我通过curl发送文本数据时,后期数据将始终从\ n更改为\ n,使新行无法使用。

这是我的代码:

$payload =  array('payload' => json_encode(array(
                                             'username' => 'Error-Bot',
                                             'text' => 'This contain a \n new line')));

$ch = curl_init($slackWebhooks);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
        curl_exec($ch);
        curl_close($ch);

1 个答案:

答案 0 :(得分:2)

\n取代json_encode,而不是在卷曲期间。

您的字符串包含“真实”换行符,在JSON中不合法,因此需要进行修改。因为\n\\n取代,接收器端必须相应地对其进行处理。

但这应该不是问题,因为\\n只是告诉javascript(这是JSON的基础)字符串包含反斜杠(\\转义反斜杠)和{{1} }。因此,接收方可以将其重新转换为换行符。

如果这不起作用,您必须提供有关接收器/外来api的更多详细信息。