XML-RPC PHP 只发送空数组


XML-RPC PHP only sends empty array

我在服务器上运行它,使用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();
    }
}