2012-06-12 28 views
0

我在服務器上運行這個,使用Joomla的XMLRPC for PHP實現。無論我嘗試發送的xmlrpcval(包括null)都不會發送。相反,發送一個空數組。XML-RPC PHP只發送空數組

相關主碼。我試過不同品種的發送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)); 
} 

返回代碼表明$dataNULL類型。我在做什麼錯?

回答

1

事實證明XML-RPC是非常嚴格的哪些數據會接受(東西是不完全體現在docs)。數組可以」 t conta在普通對象中,即使該數組已被轉換爲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(); 
    } 
}