2012-03-21 83 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); 
相關問題