WordPress XMLRPC:外籍人士报告的错误代码5
题
我写了一个小小的 PHP
申请几个月前,使用 WordPress XMLRPC library
同步两个单独的WordPress博客。我有一般的"RPCRequest"功能,包请求,发送和返回的服务的响应,我有几个具体的功能,定义类型的请求,发送。
在这种特定情况下,我呼吁"getPostIDs"检索该数额远程服务器上的和他们各自的postids.这里是代码:
$rpc = new WordRPC('http://mywordpressurl.com/xmlrpc.php', 'username', 'password');
$rpc->getPostIDs();
我收到以下错误信息:
expat reports error code 5
description: Invalid document end
line: 1
column: 1
byte index: 0
total bytes: 0
data beginning 0 before byte index:
样的一个扣人心弦的结束,这也是奇怪的。但是,由于错误消息的不是格式化,XML,我的直觉是,它是本地XMLRPC库,是产生错误的,不远程服务器。
即使是陌生人,如果我改变"getPostIDs()"呼吁"getPostIDs(1)"或任何其他整数,它工作得很好。
这里是代码WordRPC类:
public function __construct($url, $user, $pass) {
$this->url = $url;
$this->username = $user;
$this->password = $pass;
$id = $this->RPCRequest("blogger.getUserInfo",
array("null", $this->username, $this->password));
$this->blogID = $id['userid'];
}
public function RPCRequest($method, $params) {
$request = xmlrpc_encode_request($method, $params);
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml",
'content' => $request
)));
$file = file_get_contents($this->url, false, $context);
return xmlrpc_decode($file);
}
public function getPostIDs($num_posts = 0) {
return $this->RPCRequest("mt.getRecentPostTitles",
array($this->blogID, $this->username,
$this->password, $num_posts));
}
正如我所提到的,它工作得很好如果"getPostIDs"给出一个积极的整数参数。此外,这种使用的完美的工作以及为;默认的参数为0只是表明RPC服务器,它应该检索 所有 员额,而不仅仅是最近的 $num_posts
员额。只是最近才有这样的错误开始显示出来。
我已经试过谷歌上搜索的错误没有太多的幸运。我的问题是 究竟是什么"外籍人士报告的错误代码5"的意思是,谁是产生错误? 任何详细资料/建议/见解之外,欢迎!
解决方案
@*诺瓦克:谢谢你的建议。问题竟然被一个记忆的问题;通过检索所有的员额从遥远的位置,响应超过量存储器PHP被允许利用,因此未关闭令的错误。
这个问题的神秘和不完全的错误消息是由于一个过时的版本的XML-RPC图书馆使用。一旦我升级的版本主,它给我们提供了完全错误的输出,包括存储器的错误。
其他提示
我固定的这一错误installing php-xmlrpc模块上apache
php-xmlrpc.x86_64:一个模块,用于PHP应用其使用XML-RPC协议
外籍是XML parser in PHP.错误代码5是一个许多外籍人士的错误常数,在这种情况下: XML_ERROR_UNCLOSED_TOKEN
.听起来好像有一个错误的结果返回自RPC的呼吁。你可能想要做一些错误在检查RPCRequest后 file_get_contents
和之前 xmlrpc_decode
.