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