如何显示PHP XML-RPC调用的返回值?
我似乎找不到任何代码来显示调用返回的值 我正在以下链接运行软件供应商提供的xml库如何显示PHP XML-RPC调用的返回值?,php,xml-rpc,Php,Xml Rpc,我似乎找不到任何代码来显示调用返回的值 我正在以下链接运行软件供应商提供的xml库 newxmlrpcval('14719','string'),'struct'); $msg=新的xmlrpcmsg(“列表帐户”); /*在此处替换URL和凭据以访问API*/ $cli=新的xmlrpc_客户端($cli)https://DOMAINHERE/xmlapi/xmlapi'); $cli->setSSLVerifyPeer(false); $cli->setSSLVerifyHost(fals
newxmlrpcval('14719','string'),'struct');
$msg=新的xmlrpcmsg(“列表帐户”);
/*在此处替换URL和凭据以访问API*/
$cli=新的xmlrpc_客户端($cli)https://DOMAINHERE/xmlapi/xmlapi');
$cli->setSSLVerifyPeer(false);
$cli->setSSLVerifyHost(false);
$cli->setCredentials('USERNAME','PASSWORD',CURLAUTH_DIGEST);
$r=$cli->send($msg,20);
如果($r->faultCode()){
错误日志(“Fault.Code:.$r->faultCode()”,原因:.$r->faultString());
打印($r->faultString());
返回false;
}
其他的
{
返回$r->value();
//这里我需要一些东西来将返回值写入普通PHP变量
}
}
好的,多亏了哈弗的评论
我设法解决了这个问题,并在库中的代码中找到了一个实现这个技巧的函数
非常感谢你的指点,真的很有帮助
我不熟悉php和xml,学习曲线很高,但谢谢
供其他人参考,也许将来这里是最后两行的正确代码,对我来说很神奇
<?php
include 'xmlrpc/xmlrpc.inc';
// $params = array(new xmlrpcval(array("offset"=> new xmlrpcval("1", "int")
// ,"i_customer"=> new xmlrpcval("321", "int")
// ), 'struct'));
$params = array(new xmlrpcval(array("i_customer"=> new xmlrpcval("321", "int")
), 'struct'));
$msg = new xmlrpcmsg('listAccounts', $params);
/* replace here URL and credentials to access to the API */
$cli = new xmlrpc_client('DOMAIN');
$cli->setSSLVerifyPeer(false);
$cli->setdebug(0);
$r = $cli->send($msg, 20); /* 20 seconds timeout */
if ($r->faultCode()) {
error_log("Fault. Code: " . $r->faultCode() . ", Reason: " . $r->faultString());
echo $r->faultString();
}
// now lets decode the xml response..
$values=php_xmlrpc_decode($r->value());
var_dump ($values['accounts'][0][username]);
?>
newxmlrpcval(“1”,“int”)
//,“i_客户”=>新的xmlrpcval(“321”,“int”)
//)、‘结构’);
$params=array(新的xmlrpcval(数组(“i_客户”=>新的xmlrpcval(“321”,“int”)
)","struct"),;
$msg=新的xmlrpcmsg('listAccounts',$params);
/*在此处替换URL和凭据以访问API*/
$cli=新的xmlrpc_客户端(“域”);
$cli->setSSLVerifyPeer(false);
$cli->setdebug(0);
$r=$cli->send($msg,20);/*20秒超时*/
如果($r->faultCode()){
错误日志(“Fault.Code:.$r->faultCode()”,原因:.$r->faultString());
echo$r->faultString();
}
//现在让我们解码xml响应。。
$values=php_xmlrpc_decode($r->value());
var_dump($values['accounts'][0][username]);
?>
你被否决的原因有两个——一是你在大喊大叫,二是你的问题中没有实际问题。我的道歉。。已编辑的POST我希望XML-RPC调用的值位于$r->value()
中。文档应该告诉您这是什么类型-字符串?一个物体?您可以执行echo gettype($r->value());退出()代码>在返回之前暂时查看它是什么类型。您好。。感谢您的回复,当我使用您的代码时,它会返回object。。
<?php
include 'xmlrpc/xmlrpc.inc';
// $params = array(new xmlrpcval(array("offset"=> new xmlrpcval("1", "int")
// ,"i_customer"=> new xmlrpcval("321", "int")
// ), 'struct'));
$params = array(new xmlrpcval(array("i_customer"=> new xmlrpcval("321", "int")
), 'struct'));
$msg = new xmlrpcmsg('listAccounts', $params);
/* replace here URL and credentials to access to the API */
$cli = new xmlrpc_client('DOMAIN');
$cli->setSSLVerifyPeer(false);
$cli->setdebug(0);
$r = $cli->send($msg, 20); /* 20 seconds timeout */
if ($r->faultCode()) {
error_log("Fault. Code: " . $r->faultCode() . ", Reason: " . $r->faultString());
echo $r->faultString();
}
// now lets decode the xml response..
$values=php_xmlrpc_decode($r->value());
var_dump ($values['accounts'][0][username]);
?>