【问题标题】:PHP Xml-RPC array and structPHP Xml-RPC 数组和结构
【发布时间】:2015-04-20 07:40:10
【问题描述】:

我正在使用 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 = 数组();

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()

有人用过这个库吗?因为我现在迷路了..

【问题讨论】:

    标签: php xml-rpc


    【解决方案1】:

    我开始意识到,即使我们有一个数组仍然可以使用phpxmlrpc 库,我们也需要单独定义数组,所以如果必须在这里传递一个数组,可以这样做,

        $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
                )
        );
    

    【讨论】:

      【解决方案2】:

      对于php数组的递归编码,还可以使用php_xmlrpc_encode函数递归转换任意深度的数据结构

      【讨论】:

        猜你喜欢
        • 2013-09-12
        • 2017-05-14
        • 2010-11-07
        • 2011-08-25
        • 1970-01-01
        • 2017-06-29
        • 1970-01-01
        • 2013-12-16
        • 2016-05-15
        相关资源
        最近更新 更多