Php Linkedin API中的换行符 带回车符的Linkedin API标题
我正在使用Php Linkedin API中的换行符 带回车符的Linkedin API标题,php,api,share,linkedin,article,Php,Api,Share,Linkedin,Article,我正在使用Linkedin标题上的回车符,通过Linkedin共享文章API共享帖子。但在通过API共享时,它会返回如下错误 将请求正文解析为JSON时出错非法的无引号字符((CTRL-CHAR,代码10)):必须使用反斜杠进行转义,以包含在[Source:(com.linkedin.data.ByteString$ByteArrayVectorInputStream]的字符串值中\n 是否有办法解决此问题并在标题中传递回车。请帮助 我尝试使用“\n”替换回车符,因为它使用反斜杠显示为escap
Linkedin标题
上的回车符,通过Linkedin共享文章API
共享帖子。但在通过API共享时,它会返回如下错误
将请求正文解析为JSON时出错非法的无引号字符((CTRL-CHAR,代码10)):必须使用反斜杠进行转义,以包含在[Source:(com.linkedin.data.ByteString$ByteArrayVectorInputStream]的字符串值中\n
是否有办法解决此问题并在标题中传递回车。请帮助
我尝试使用“\n”替换回车符,因为它使用反斜杠显示为escape,但对我无效
$msg='test1
测试2
test3';
$msg=preg_replace(“/[^A-Za-z]/”、“\n”、$msg)
我已经尝试了上述方法,但我再次从Linkedin API得到了相同的错误响应
预期结果是共享带有如下标题的帖子
“测试1
测试2
test3';
测试3“
但它不会向用户帐户发送帖子,而是会出现如下错误
将请求正文解析为JSON时出错非法的无引号字符((CTRL-CHAR,代码10)):必须使用反斜杠进行转义,以包含在[Source:(com.linkedin.data.ByteString$ByteArrayVectorInputStream]的字符串值中\n
要在字符串中插入文字
\n
,您需要转义反斜杠;否则PHP理解\n
符号,并将其更改为实际的换行符,这是您试图避免的。因此,在代码段中写入“\\n”
而不是“\n”
但是@04FS的评论很贴切:你不应该自己生成json格式!把你的数据放在一个数组中,不用担心转义的换行符之类的,用
json\u encode
来序列化它。试着在你的字符串中放一个实际的反斜杠-n;当你写“\n”
,php将其转换为换行符,API将看到与以前相同的内容。(例如,在代码中写入“\\n”
,以插入真正的反斜杠。)向我们展示您的代码,您实际在何处创建JSON。您是手动创建的吗?然后停止,这不是一件聪明的事情-创建适当的数据结构,然后在其上使用JSON\u encode
。@alexis非常感谢。我已经尝试了您的技巧,效果非常好。欢迎您。这不是一个技巧,它是常规的P生成api要求的语法。我已将其作为答案写出来,请“接受”它以将此问题标记为已解决。(然后请注意@04FS所写的内容!)