PHP XML RPC-如何处理返回的数组


PHP XML RPC - How to handle the returned array

我使用的是http://phpxmlrpc.sourceforge.net.我创建了一个客户端,并将带有结构/数组的方法发送到服务器,我得到了一些响应,但我不知道如何处理响应以使用foreach()或直接获取响应的值。

也许你们中的一些人可以帮我?

我的代码:

include("../../lib/xmlrpc.inc");
$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
$client=new xmlrpc_client("/xmlrpc.php", "www.domain.de", 443);
$client->setDebug(0);
$auth= new xmlrpcval(
    array(
    "username" => new xmlrpcval("user"),
    "password" => new xmlrpcval('pw'),
), "struct");
$search = new xmlrpcval(
    array(
    'EMAIL'=> new xmlrpcval('info@domain.de')
),'struct');
$message=new xmlrpcmsg('doProfileFindBy',
    array(
        $auth,
        new xmlrpcval(964296, "int"),
        $search
    ),'struct'
);
$r = $client->send($message, 0, 'https');
echo '<pre>';
var_dump($r);
echo '</pre>';

我确实收到了一个我正在寻找的数据的响应,但它并没有被格式化为将其用作数组

希望有人能帮我。非常感谢!

基于您的var_dump和XML RPC类的文档http://phpxmlrpc.sourceforge.net/doc-2/ch07s04.html你应该这样做:

$r = $client->send($message, 0, 'https');
$value = $r->value();

然后关于http://phpxmlrpc.sourceforge.net/doc-2/ch07.html以及响应的结构您应该能够解析出您需要的值。您的响应的结构有点复杂,包含具有数组类型属性的对象,该对象包含具有数组属性的另一个对象,并且一次又一次,直到出现值数组为止。您可能想要解析出。。。

您可以像这样循环响应数组(用于测试):

foreach($r as $key => $value)
{
  echo $key." : ".$value."<br>" ;
}

或者您需要任何特定的键值对。