基本上,我想将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);
答案 0 :(得分:2)
\n
取代json_encode
,而不是在卷曲期间。
您的字符串包含“真实”换行符,在JSON中不合法,因此需要进行修改。因为\n
被\\n
取代,接收器端必须相应地对其进行处理。
但这应该不是问题,因为\\n
只是告诉javascript(这是JSON的基础)字符串包含反斜杠(\\
转义反斜杠)和{{1} }。因此,接收方可以将其重新转换为换行符。
如果这不起作用,您必须提供有关接收器/外来api的更多详细信息。