首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML-RPC PHP仅发送空数组

XML-RPC PHP仅发送空数组
EN

Stack Overflow用户
提问于 2012-06-13 02:35:15
回答 1查看 650关注 0票数 0

我使用Joomla的XMLRPC for PHP实现在服务器上运行它。我尝试发送的任何xmlrpcval (包括null)都不会发送。相反,将发送一个空数组。

相关主代码。我尝试过发送不同种类的xmlrpcmsg (从复杂的数组到简单的字符串):

代码语言:javascript
复制
$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);

从代码(不是真正的功能,只是尝试让它工作:

代码语言:javascript
复制
function insertContent($params){        
    $data = $params->getParam(0);
    $result = gettype($data);

    return new xmlrpcresp(new xmlrpcval($result));
}

返回码显示$data的类型为NULL。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 21:41:46

事实证明,XMLRPC非常严格地规定了它将接受什么数据(这在docs中并没有完全反映出来)。数组不能包含纯对象,即使该数组已转换为XMLRPC对象。下面的代码将一个数组和其中的所有内容包装到一个XMLRPC结构中:

代码语言:javascript
复制
//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();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11002706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档