Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Разбор xml на стороне сервера


Автор: jamals 15.7.2011, 22:51
К примеру есть запрос
Код

<request><version>0.1</version>
<action>testing</action>
<sign>4522346547568</sign>
<order>1</order>
<description>Тест</description>
</request>

Отправляется через curl на сервер, как его принять? просто не могу понять! 
Облазил все не чего полезного не нашел..   
Просто это единственная надежда, так как тут хорошо знают xml  smile 

p.s на сервере его принять!

Автор: bars80080 15.7.2011, 23:13
как обычные переменные среды. отправил как get, значит читай его в $_GET, отправил как post - в $_POST

Автор: jamals 16.7.2011, 04:47
вы имеете веду, сайт.ру/скрипт.пхп?version=0.1&type=testing и т.п?
А как нить по другому можно?

Если к примеру через курлом я пост запрос в xml отправляю, как его на сервере обработать и выслать ответ?

Автор: bars80080 16.7.2011, 13:02
Цитата(jamals @  16.7.2011,  04:47 Найти цитируемый пост)
Если к примеру через курлом я пост запрос в xml отправляю, как его на сервере обработать и выслать ответ? 



Код

$my_text = '<request><version>0.1</version>
<action>testing</action>
<sign>4522346547568</sign>
<order>1</order>
<description>Тест</description>
</request>';

$data = 'param='.rawurlencode($my_text);

        $ch = curl_init();//var_dump($ch);
        curl_setopt($ch, CURLOPT_URL, $url); // опция, в которой устанавливается url - адрес, куда будет отправлен запрос,
        curl_setopt($ch, CURLOPT_FAILONERROR, 1);  
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // возвращать ответ в переменную 
        curl_setopt($ch, CURLOPT_TIMEOUT, 120); // times out
        curl_setopt($ch, CURLOPT_POST, 1); // выбирает режим post
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // опция, в которую загружаются данные

        $result = curl_exec($ch); // ответ будет возвращён в переменную $result
        curl_close($ch);


на отвечающем_сервере отосланные данные будут доступны в $_POST['param']
любое echo скрипта на отвечающем_сервере будет получено в переменную $result на запрашивающем_сервере

Автор: jamals 16.7.2011, 21:49
Спасибо!

Автор: jamals 17.7.2011, 10:48
$xml=$_POST['param'];
$text = simplexml_load_string($xml);
$result['version'] = $text->version;
$result['sign'] = $text->sign;
$result['order'] = $text->order;
$result['description'] = $text->description;


Или можно по другому?
Типо: 
$xml=file_get_contents("php://input");
$text = simplexml_load_string($xml);
$result['version'] = $text->version;
$result['sign'] = $text->sign;
$result['order'] = $text->order;
$result['description'] = $text->description;

Можно так?

Автор: jamals 17.7.2011, 22:40
Тему можно закрыть!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)