PEAR XML_RPC_编码与PHP xmlrpc_编码请求

PEAR XML_RPC_编码与PHP xmlrpc_编码请求,php,xml-rpc,pear,Php,Xml Rpc,Pear,我正在探索使用XMLRPC服务在Drupal系统和我们网站的另一部分之间进行通信。我找到了一些PHP的PHP_xmlrpc扩展的示例代码,但发现我们的web主机不支持该扩展 相反,它们提供PEAR XML_RPC包 这两种方法的编码似乎非常不同 我用来设置请求的PHP代码,基于 我在我的PC上用WAMPserver测试了php_xmlrpc,php_xmlrpc中的函数xmlrpc_encode_request()返回我需要的内容,如下所示: <?xml version="1.0" enc

我正在探索使用XMLRPC服务在Drupal系统和我们网站的另一部分之间进行通信。我找到了一些PHP的PHP_xmlrpc扩展的示例代码,但发现我们的web主机不支持该扩展

相反,它们提供PEAR XML_RPC包

这两种方法的编码似乎非常不同

我用来设置请求的PHP代码,基于

我在我的PC上用WAMPserver测试了php_xmlrpc,php_xmlrpc中的函数xmlrpc_encode_request()返回我需要的内容,如下所示:

<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
<methodName>user.login</methodName>
<params>
 <param>
  <value>
   <string>example.user</string>
  </value>
 </param>
<param>
  <value>
   <string>password</string>
  </value>
 </param>
</params>
</methodCall>

PEAR XML_RPC中是否还有其他可以将参数编码为XML的函数?

文档可从

要获得XML封送输出,您首先构造一条消息,然后使用
->serialize()
方法:

$msg = new XML_RPC_Message("function", array(new XML_RPC_Value(123, "int")));
print $msg->serialize();
您的
XML\u RPC\u encode()
函数用于将普通php数组包装到此类
XML\u RPC*
对象中


但是显然,PEAR类主要是通过处理原始数据转换的
XML\u RPC\u客户机
接口来使用的。

谢谢Mario!这正是我所需要的。我对PEAR软件包没有太多经验,在他们的文档中有点迷失了方向。我把你的答案标记为正确,如果允许的话,我会投赞成票。事实上,PEAR文档并非总是可用的,也并非在所有情况下都有用。这个类也比简单的内置PHP函数早了一段时间。(不要担心投票。如果你能报告哪个答案有效就足够了,这对未来的访问者最有帮助。)
Array
(
    [0] => example.user
    [1] => password
)
object(XML_RPC_Value)#1 (2) {
  ["me"]=>
  array(1) {
    ["string"]=>
    string(10) "user.login"
  }
  ["mytype"]=>
  int(1)
}
$msg = new XML_RPC_Message("function", array(new XML_RPC_Value(123, "int")));
print $msg->serialize();