2012-03-21 124 views
0

我试图发送一个HTTP GET在一个PHP文件请求到服务器并接收响应。试图发送一个HTTP GET从一个PHP文件请求到服务器并接收HTTP响应

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我可以读第二$res不会加载,因为simplexml_load_file() 1号
  • 没有在我的记事本+ +

可有人语法高亮向我解释我做错了什么,或建议另一种工作方式?

+0

尝试'的print_r($水库);'并写在这里结果 – safarov 2012-03-21 15:01:51

+0

不要担心symtax​​突出我敢肯定,这个功能的存在;!) 如果PHP告诉你,这是不确定的,也许你得允许的SimpleXML PHP扩展,但现在我的事了包括在核心(不确定) – haltabush 2012-03-21 15:08:42

回答

0

看起来你需要设置CURLOPT_RETURNTRANSFER选项。然而,它可能更容易只是这样做:

所有的
$res = file_get_contents($uri); 
+0

是的,但卷曲你可以处理错误,设置你自己的超时,... – haltabush 2012-03-21 15:05:10

+0

file_get_content确实是一个更容易的解决方案,我测试了它,但仍然没有得到一个回应..我用print_r和回声..希望打印什么。 – Tobrun 2012-03-21 15:38:06

1

首先,记事本++的语法高亮有绝对没有任何关系与它是否有效。它只是读取名称,并且您会注意到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_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
相关问题