xml rpc — массив и структура PHP Xml-RPC

Я использую XML-RPC Lib для 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 () для необъекта

Кто-то уже использовал эту библиотеку? Потому что я потерялся прямо сейчас ..

2

Решение

Я пришел к выводу, что даже если у нас еще есть массив для использования 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
)
);
0

Другие решения

Для рекурсивного кодирования массивов php вы также можете использовать php_xmlrpc_encode функция, которая будет рекурсивно преобразовывать произвольно глубокие структуры данных

0

По вопросам рекламы [email protected]