Как я могу создать заголовок soap в PHP?

#php #soap #soapheader

#php #soap #soapheader

Вопрос:

Как я могу создать подобный заголовок soap:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<requestHeader>
<user>
<userId>ID</userId>
<password>Password</password>
</user>
<service>service</service>
</requestHeader>
  

Комментарии:

1. Я не вижу никакого SOAP в этом примере; это просто обычный XML.

Ответ №1:

Не слишком очевидно, для чего вам нужно это создание, но в целом серия функций PHP DOM:

http://php.net/manual/en/book.dom.php

Позволяет генерировать XML, сохраняя результат в виде строки для дальнейшего использования. Если вы общаетесь через SOAP или хотите создать SOAP-сервер, функции PHP SOAP являются хорошим ресурсом:

http://www.php.net/manual/en/book.soap.php

Ответ №2:

Я думаю, вы говорите о заголовке клиента, который является обязательным для «входа» на сервер SOAP, поэтому, исходя из этого предположения, это выглядит так, как вы хотите сделать:

 <?php 
$ns = 'urn:namespace'; // the namespace for the request, you don't appear to have any

// actual header construction, based on your structure
$soapHeader = array('user' => array( 
                      'userId' => $__yourUserID, 
                      'password' => $__yourUserPassword,
                    ),
                    'service' => $__yourService,
);

// Soap Header initialization
$header = new SOAPHeader($ns, 'requestHeader', $soapHeader);        

// add the Header to the Soap Client before request
$soap_client->__setSoapHeaders($header); 

?>