2012-03-21 17 views
0

phpファイルのhttp get要求をサーバーに送信し、応答を受信しようとしています。phpファイルからhttp取得要求をサーバーに送信しようとしていて、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をエコーし​​た場合、私はsimplexml_load_file()が私のメモ帳で構文ハイライトされていないため、2番目の$resが++

をロードしません数1

  • を読むことができることができる人私が間違っていることを私に説明するか、別の作業方法を助言するか?

  • +0

    を;'ここで結果を書いてください – safarov

    +0

    symtax​​の強調表示について心配しないでください!私はこの機能が存在することを確信しています;) PHPがあなたにそれが定義されていないと言った場合、おそらくSimpleXML PHP拡張機能を許可する必要があります。それは確かではありません) – haltabush

    答えて

    0

    CURLOPT_RETURNTRANSFERオプションを設定する必要があるようです。しかし、それだけでこれを行うには、おそらく簡単です:すべての

    $res = file_get_contents($uri); 
    
    +0

    はい、しかしカールであなたはエラーを処理することができます、独自のタイムアウトを設定してください... – haltabush

    +0

    file_get_content確かにはるかに簡単な解決策、私はそれをテストしましたが、まだ応答を取得していません..私はprint_rとエコー..使用して何も印刷されませんでした。 – Tobrun

    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); 
    } 
    

    をあなたはカールを使用したい場合は、しかし、単に追加のオプション設定: `ますprint_r($ RES)を試してみてください

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);