Wordpress XMLRPC API post(html)错误解析错误不是很好

时间:2013-04-15 02:09:34

标签: php xml wordpress xml-rpc

我正在使用Wordpress的XMLRPC API和用于WP API的IXR_Library php类。 wp.​​newPost工作正常,如果我在帖子的正文/内容中使用纯文本或简单文本但是当我发布自动处理的完整html /短代码内容时,它总是给我这个错误

Array ( [faultCode] => -32700 [faultString] => parse error. not well formed ) 

我想发布的内容是我通常在WP中使用短信的帖子内容,但是我想通过php使用API​​发布它,因为我试图自动化我的博客。
您可以查看我想在下面发布的正文/内容 http://pastebin.com/U94XVZGT
这是XML调试模式中显示的内容(可能看起来已经是html编码)
下面是通过调试返回的完整XML调用和响应,已从中移除了用户/传递 http://pastebin.com/26Nyx97K

我真的很感激任何可能的帮助,我已经尝试过php的htmlentities和htmlspecialchar函数对我的身体进行编码,甚至尝试使用str_replace替换[]括号,以为它们可能会导致它

再次,它肯定是由于内容代码,因为我尝试了一个Hello World纯文本内容并且它起作用了-------------------------- ----------------------------------
一个更新,早些时候我使用$ _POST从textarea获取html内容,刚才我尝试在相同的变量中使用相同的内容但是在内容正文周围使用''单引号,现在发布工作但是我收到错误

Warning: strpos(): Empty delimiter in wp-includes/class-wp-xmlrpc-server.php on line 4338

所以,如果我使用$ body = $ _ POST ['body'];它不起作用并给出主要错误,但直接使用$ body ='htmlcontent inside';有效,但给出了上面的错误

4 个答案:

答案 0 :(得分:3)

请尝试添加 xml包:

  

sudo apt-get install php-xml

,这解决了我的问题。

答案 1 :(得分:1)

对于遇到此问题的其他人,我修复了它。在它的结尾似乎问题是由于错误的字符编码,我需要传递UTF8,但内容是在一些其他字符编码(窗口一)中传递使一些文本和其他语言不可解析,我修改我的代码使其成为UTF 8现在可以使用了

答案 2 :(得分:1)

我已将密码更改为不包含符号,因此解决了问题。

我仍然不确定最初是什么破坏了所有内容,但您可能会尝试更改它并再次尝试,看看它是否适合您。

答案 3 :(得分:0)

对于遇到此问题的其他人,它也可能与WordPress错误#18310有关。

http://core.trac.wordpress.org/attachment/ticket/18310/18310-3.diff

有一个WordPress补丁

http://core.trac.wordpress.org/ticket/18310

上查看有关其trac安装的WordPress错误报告