我使用XML-RPC Lib for PHP来使用在线签名。
这是官方文件:
$doc = array(
"content" => new xmlrpcval($doc_content, "base64"),
"name" => new xmlrpcval($doc_name, "string")
);
$language = "fr";
$signers = array(new xmlrpcval($signer, "struct"));
$request = array(
"documents" => new xmlrpcval(array(new xmlrpcval($doc, "struct")), "array"),
...
但现在我想在请求中放入几个文件。这是我的代码: $ docs = array();
foreach ($documents as $document)
{
// Signature field
$field = array(
'page' => new xmlrpcval($document->page, 'int'),
'x' => new xmlrpcval($document->x, 'int'),
'y' => new xmlrpcval($document->y, 'int'),
'label' => new xmlrpcval($document->nom, 'string'),
);
// Document
$docs []= new xmlrpcval(array(
'content' => new xmlrpcval($document->content, 'base64'),
'name' => new xmlrpcval($document->nom, 'string'),
'signatureFields' => new xmlrpcval($field, 'array'),
),'struct');
}
$request = array(
'documents' => new xmlrpcval($docs, 'array'),
我发现了这个错误:
消息:在非对象上调用成员函数serialize()
有人已经使用过此库吗?因为我现在迷路了..
答案 0 :(得分:0)
我已经意识到,即使我们有一个数组仍然使用phpxmlrpc
库,我们需要单独定义数组,所以如果必须在这里传递一个数组,那么可以做什么,< / p>
$listids // this was my one dimensional array
$subs_list_array = array();
foreach ($listids as $id) {
$subs_list_array[] = new xmlrpcval($id, "int");
}
$msg = new xmlrpcmsg(
"contact.subscribe", array(
//Set user id
new xmlrpcval($registration_id, "int"),
new xmlrpcval($subs_list_array, "array")// <- Now I am able to use the array
)
);
答案 1 :(得分:0)
对于php数组的递归编码,你也可以使用递归转换任意深度数据结构的php_xmlrpc_encode
函数