2014-04-03 4 views
0

컬리스트를 사용하여 프록시 목록을 사용하여 데이터를 스크랩하는 기능이 있습니다. 함수가 호출 될 때마다 임의의 프록시를 선택합니다. 그러나 때로는 프록시가 실패하거나 시간 초과 될 수 있습니다.문자열을 찾을 수 없을 때 재시도 기능

연결이 끊어 지거나 시간이 초과되면 데이터가 반환 될 때까지 최대 3 번까지 기능을 반복하고 싶습니다.

$check = stripos($page,'string_to_check'); 
if($check > 0){ 
    return $page; //String found. Return scraped data. 
} 
else { 
    //String not found. Loop the script 
} 

나는 전체 기능 코드가있는 경우 문자열 아무튼 반복 얻을 것입니다 방법 : 문자열이 같은 출력에 존재하는 경우

내가 연결이 나쁜 경우 테스트하고 싶은 방법은 확인하는 것입니다 존재하지 않니?

+0

재귀 함수로 변환 –

+1

'$ i = 3; while ($ i--) {...}' – zerkms

+0

이것에 대해 자세히 설명해 주시겠습니까? – netdon

답변

0
$max_tries = 3; 
$success = false; 

//try 3 times 
for($i = 0; $i < $max_tries; $i++) { 
    $page = your_scrape_function(); 
    $check = stripos($page,'string_to_check'); 
    if($check > 0){ 
    $success = true; 
    break; //String found. Break loop. 
    } 
} 

// double check that the string was actually found and you didn't just exceed $max_tries 
if(! $success) { 
    die('Error: String not found or scrape unsuccessful.'); 
} 
+0

이 문제는 함수가 다시 시도 할 때마다 동일한 죽은 프록시를 선택하는 것 같습니다. – netdon

관련 문제