PHP XML RPC - 如何处理返回的数组
Posted
技术标签:
【中文标题】PHP XML RPC - 如何处理返回的数组【英文标题】:PHP XML RPC - How to handle the returned array 【发布时间】:2012-08-29 07:43:14 【问题描述】:我正在使用来自http://phpxmlrpc.sourceforge.net 的 PHP XML RPC 类。 我创建了一个客户端并将带有结构/数组的方法发送到服务器,我得到了一些响应,但我不知道如何处理响应以使用 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 的内容)?这对我们很有帮助,因此对您有帮助...... 【参考方案1】:根据您的 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 和响应的结构你应该能够解析出你需要的值。您的响应的结构有点复杂,包含具有数组类型属性的对象,该对象包含另一个具有数组属性的对象,一次又一次,直到出现您可能想要解析出来的值数组...
【讨论】:
【参考方案2】:您可以像这样遍历响应数组(用于测试):
foreach($r as $key => $value)
echo $key." : ".$value."<br>" ;
或者您需要任何特定的键值对。
【讨论】:
嘿,它会返回:可捕获的致命错误:xmlrpcval 类的对象无法转换为字符串 该行是“echo $key”... 它是bcoz,它可能返回一个对象类型数组。你能把var_dump()的输出给我们吗。到时回复你会很有帮助。 这里是:pastie.org/4609025 - 我无法回答我自己的问题,所以我粘贴了它。以上是关于PHP XML RPC - 如何处理返回的数组的主要内容,如果未能解决你的问题,请参考以下文章