我使用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。我做错了什么?
发布于 2012-07-17 21:41:46
事实证明,XMLRPC非常严格地规定了它将接受什么数据(这在docs中并没有完全反映出来)。数组不能包含纯对象,即使该数组已转换为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();
}
}https://stackoverflow.com/questions/11002706
复制相似问题