XML-RPC PHP只发送空数组

时间:2012-06-12 18:35:15

标签: php joomla xml-rpc joomla2.5

我在服务器上运行它,使用Joomla的XMLRPC实现。无论我尝试发送的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类型。我做错了什么?

1 个答案:

答案 0 :(得分:1)

事实证明,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();
    }
}