2012-03-21 3 views
0

PHP 파일에서 http get 요청을 서버로 보내고 응답을 받으려고합니다.php 파일에서 http get 요청을 서버로 보내고 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 에코 경우에 나는 두 번째 $ressimplexml_load_file() 때문에로드되지 않습니다 수 1
  • 내 메모장 ++

수있는 사람에 강조 구문되지 읽을 수 있습니다 내가 잘못하고있는 것을 나에게 설명해 주거나 다른 일하는 방법을 조언 해 주시겠습니까?

+0

하는'인 print_r ($ 고해상도를) 시도를;' 여기에 쓰십시오 result – safarov

+0

symtax ​​강조 표시에 대해 걱정하지 마십시오!이 함수가 존재한다는 것을 확신합니다.) PHP에서 정의되지 않았다고 말하면 SimpleXML PHP 확장을 허용해야하지만, 이제는 코어에 포함 된 것입니다. 그것의 확실하지 않다) – haltabush

답변

0

CURLOPT_RETURNTRANSFER 옵션을 설정해야하는 것처럼 보입니다. 그러나, 그냥 이렇게 아마도 쉽게 : 모든

$res = file_get_contents($uri); 
+0

예,하지만 당신은 오류를 처리 할 수있는 자신 만의 시간 제한을 설정할 수 있습니다 ... – haltabush

+0

file_get_content 실제로 훨씬 쉬운 솔루션, 나는 그것을 테스트했지만 여전히 응답을 얻지 못했습니다. 나는 print_r과 echo를 사용했습니다. 아무 것도 인쇄하지 않았습니다. – Tobrun

1

첫째, 메모장 ++의 구문 강조는 유효 여부와 할 절대적으로 아무 상관이 없습니다. 이름을 읽는 것만으로 simplexml_load_file이 강조 표시되지 않습니다.

이제 문제를 해결하십시오. $res은 에 의해 반환 된 부울 값입니다. 문서에 지정된대로 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); 
관련 문제