2012-10-04 7 views
-1

가끔 액세스 할 수없는 것으로 보이는 웹 사이트에서 데이터를 수집합니다 (또는 때로는 문제가있는 DNS 호스트 일 수도 있음). (CLI로 시작) PHP로 작성된 프로그램은 오류와 함께 종료 :PHP cURL 호스트를 확인할 수 없음

Couldn't resolve host 'abcdef.com'

나는 프로그램이 종료되지해야하기 때문에, 예외와 마찬가지로,이 오류를 차단하고 싶습니다.

"시도하다"시도했지만 작동하지 않습니다. 내가 프로그램을 다시 시작하기 위해 외부 데몬의 사용을 피하기 위해 싶습니다

...

는 당신의 도움을 주셔서 감사합니다.

편집 : 코드를 사용 :

function goToPage($url) { 
     $ch = curl_init($url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
     curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("./cookies/cookie.txt")); 
     $ret = curl_exec($ch); 
     if ($ret === FALSE) { 
      die(curl_error($ch)); 
     } 
     curl_close($ch); 

     $this->delay(); 

     return $ret; 
} 
+2

쇼 : 사용자 정의 예외를 throw 할 경우,

if(curl_errno($ch)) { echo 'error:' . curl_error($ch); } 

또는 : 당신은 컬 오류가 있는지 여부를 알아 내기 위해, 당신은 단지 기능 curl_errno()와 curl_error()를 사용할 수 있습니다 일부 코드 ... –

+0

cURL 코드를 볼 수 있습니까? –

+0

불가능합니다. cURL ** 결코 ** 예외를 throw하지 않습니다. curl_error를 조사하고, 그것을 이해하고, 던져야합니다. – Prasanth

답변

5

당신은 실제로 프로그램의 실행을 중지되어 있는지 확인 있습니까? 내 말은, 예외가 아니라면 .. 예외가 아니란 말입니다. 내가 아는 한, cURL은 예외 또는 치명적인 오류를 던지지 않습니다. 당신이보고있는 것은 가장 일반적인 통보/경고 일 가능성이 큽니다.

//you'll probably want to customize this further based on the type of error. 
if(curl_errno($ch)){ 
    throw new Exception(curl_error($ch)); 
} 
+0

난 그냥 바보 야, 내 코드를 변경하고 죽을 때 사용했다고 생각해. (curl_error ($ ch)) –

+1

ㅎ! 걱정 마세요, 우리 모두 바보 같은 짓을했습니다. :) –

관련 문제