Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Подскажите как отпрвить запрос по ссылке
Форумы портала PHP.SU » » HTTP и PHP » Подскажите как отпрвить запрос по ссылке

Страниц (1): [1]
 

1. jack_frost - 04 Мая, 2017 - 14:48:31 - перейти к сообщению
Подскажите, пожалуйста уже несколько дней бьюсь над задачей и ничего не получается.
Задача состоит в следующем:
Из формы беру данные Логин/Пароль и их нужно передать GET запросом по ссылке на сервер. А от туда я должен получить результат в виде xml таблицы.
Ссылка идет такой своеобразный вид:
https://dataxp.net/api.cgi?<Request><get><login_name>$login</login_name><login_password>$pass</login_password></get></Request>
Если ее вставить в браузер самому (с данными вместо переменных $login и $pass) то мне отображается xml таблица.
А вот если ее присвоить какой-то переменной для дальнейшей работы - то она кардинально меняется и в результате ничего не получается.
Пример:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $url = 'https://dataxp.net/api.cgi?<Request><get><login_name>qw100b231</login_name><login_password>382761</login_password></get></Request>';
  3. echo $url;
  4. ?>

В результате видим
PHP:
скопировать код в буфер обмена
  1. https://dataxp.net/api.cgi?qw100b231382761

Так вот причина в такой своеобразной ссылке или я что-то не так делаю?
И как лучше отправлять GET запросы на сервер?
2. andrewkard - 04 Мая, 2017 - 21:13:18 - перейти к сообщению
jack_frost пишет:
И как лучше отправлять GET запросы на сервер?

имя=значение после ?

http://localhost/script.php?name=имя
3. jack_frost - 08 Мая, 2017 - 12:54:42 - перейти к сообщению
Ну с запросом я вроде разобрался.
PHP:
скопировать код в буфер обмена
  1. function curl($url){
  2. $ch = curl_init($url);
  3. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  5. $data = curl_exec($ch);
  6. if(curl_errno($ch))
  7.     print curl_error($ch);
  8. else
  9.     curl_close($ch);
  10.     return $data;
  11. }

В результате я получаю
CODE (html):
скопировать код в буфер обмена
  1. <Response>
  2.  <DateTime>2017-05-08 10:26:35</DateTime>
  3.  <AccountInfo>
  4.   <FullName>Моисеенко А. В.</FullName>
  5.   <Addr>Радченко ул., д. 16, кв. 2</Addr>
  6.   <BalanceCurrent>317.10</BalanceCurrent>
  7.  </AccountInfo>
  8. </Response>]

И теперь мне нужно парсить эту $data (в которой находится код html)
PHP:
скопировать код в буфер обмена
  1. $xml = simplexml_load_string($data);
  2. print_r($xml->DateTime);

Но в результате ничего. В чем может быть проблема?
Как можно парсить xml который в нутри переменной?
4. andrewkard - 08 Мая, 2017 - 13:42:04 - перейти к сообщению
jack_frost пишет:
Но в результате ничего. В чем может быть проблема?

Работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = <<<EOF
  3. <Response>
  4.  <DateTime>2017-05-08 10:26:35</DateTime>
  5.  <AccountInfo>
  6.   <FullName>Моисеенко А. В.</FullName>
  7.   <Addr>Радченко ул., д. 16, кв. 2</Addr>
  8.   <BalanceCurrent>317.10</BalanceCurrent>
  9.  </AccountInfo>
  10. </Response>
  11. EOF;
  12. $xml = simplexml_load_string($xml);
  13. print_r($xml->DateTime);
  14.  

SimpleXMLElement Object ( [0] => 2017-05-08 10:26:35 )
Видимо у Вас в ответе что то еще затесалось, посмотрите внимательно

 

Powered by ExBB FM 1.0 RC1