Как получить xml-запросы и отправить ответ xml в php?

Поэтому мне нужно создать приложение, которое получит запрос xml, и на основании этого мне нужно будет вернуть ответ xml. Я знаю, как отправлять запросы и получать ответ, но я никогда не делал этого по-другому. Я бы послал запрос так:

private function sendRequest($requestXML) { $server = 'http://www.something.com/myapp'; $headers = array( "Content-type: text/xml" ,"Content-length: ".strlen($requestXML) ,"Connection: close" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $server); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 100); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $data = curl_exec($ch); if(curl_errno($ch)){ print curl_error($ch); echo " something went wrong..... try later"; }else{ curl_close($ch); } return $data; } 

Мой вопрос: какой будет код на принимающей стороне? Как поймать входящий запрос? Благодарю.

Общая идея состоит в том, чтобы прочитать значение POST, проанализировать его как XML, принять на нем бизнес-решение, построить ответ XML в соответствии с API, который вы решили, и записать его в ответ.

Прочтите значение POST:

 $dataPOST = trim(file_get_contents('php://input')); 

Разбирайте как XML:

 $xmlData = simplexml_load_string($dataPOST); 

Затем вы должны построить XML-строку (или дерево документов, если хотите) и распечатать ее в ответ. print () или echo () сделают все возможное.

Все, что вам нужно сделать на принимающей стороне, – создать «обычный» PHP-скрипт. В зависимости от протокола между конечной точкой и запрашивающей службой вам необходимо получить данные из правильного местоположения, которое, скорее всего, будет массивом $ _GET или $ _POST .

Возможно, вам придется прочитать необработанные данные POST, если они не пройдут через $ _POST, возьмите пик в этой статье

http://www.codediesel.com/php/reading-raw-post-data-in-php/