Попытка отправить http-запрос get из php-файла на сервер и получить http-ответ - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь отправить запрос http в файле php на сервер и получить ответ.

function broadcastRequest($catCommand,$command,$prop){
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL,'http://'.$prop["ipServer"].':'.$prop["portVLM"].$prop["startURL"].$catCommand."%20".$prop["broadcastName"].'%20'.$command);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    $res = curl_exec ($ch);
    $res = simplexml_load_file($res);   
    curl_close ($ch);
}
  • Если я повторю первый $res, я смогу прочитать число 1
  • второй $res не будет загружаться, потому что simplexml_load_file() не выделен синтаксисом в моем блокноте ++

Может кто-нибудь объяснить мне, что я делаю неправильно, или посоветовать другой способ работы?

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Прежде всего, подсветка синтаксиса Notepad ++ не имеет абсолютно никакого отношения к с тем, является ли она действительной.Он просто читает имена, и вы заметите, что simplexml_load_file никогда не выделяется.

Теперь о проблеме.$res - это просто логическое значение, возвращаемое curl_exec, поскольку вы не установили опцию CURLOPT_RETURNTRANSFER, как указано в документации.Однако более простой способ - просто загрузить его напрямую:

function broadcastRequest($catCommand,$command,$prop) {
    $res = simplexml_load_file('http://' . $prop["ipServer"] . ':' . $prop["portVLM"] . $prop["startURL"] . $catCommand . '%20' . $prop["broadcastName"] . '%20' . $command);
}

Если вы хотите использовать cURL, просто установите дополнительную опцию:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
0 голосов
/ 21 марта 2012

Похоже, вам нужно установить опцию CURLOPT_RETURNTRANSFER. Однако, вероятно, проще сделать это:

$res = file_get_contents($uri);
...