我在服务器上运行它,使用Joomla的XMLRPC for PHP实现。 无论我尝试发送什么xmlrpcval(包括null
)都不会发送。 而是发送一个空数组。
相关主代码。 我尝试了不同种类的xmlrpcmsg发送(从复杂的数组到简单的字符串):
$articleData = new xmlrpcmsg("insertContent", array(new xmlrpcval($articleArray, "struct")));
$client = new xmlrpc_client("/administrator/components/com_quickagencyslave/remote/easyblog.php", $clientArray["url"]);
$response = $client->send($articleData);
从属代码(不是实际功能,只是试图让它工作:
function insertContent($params){
$data = $params->getParam(0);
$result = gettype($data);
return new xmlrpcresp(new xmlrpcval($result));
}
返回代码显示$data
的类型为 NULL
。 我做错了什么?
事实证明,XMLRPC对它将接受哪些数据非常严格(这并没有完全反映在文档中)。 数组不能包含纯对象,即使该数组已转换为 XMLRPC 对象也是如此。 下面的代码将数组及其中的所有内容包装到 XMLRPC 结构中:
//Takes an array containing strings, returns an xmlrpc array of xmlrpcvals
function xmlrpcpack($input){
if(is_array($input)){
$return = array();
foreach($input as $item){
if(gettype($item) === "array")
$return[] = xmlrpcpack($item);
else
$return[] = new xmlrpcval($item);
}
return new xmlrpcval($return, "array");
}else{
debug_print_backtrace();
}
}