2017-01-11 4 views
1

방금 ​​콘텐츠를로드하는 솔루션을 찾고 file_get_contents 내 스크립트가 제대로 작동하지만 가끔 파일이로드되지 않습니다. file_get_contents이 실패했는지 확인하는 방법을 알고 있지만 페이지를 다시로드하지 않고 다시 시도하는 방법을 알고 있습니까?file_get_contents가 오류를로드하고 반복합니까?

$url = file_get_contents('url.to.file'); 
if ($url === false) 
{ 
    // code to do it again, how? 
} 
+0

첫 번째 시도가 실패하면 파일을 계속로드하려고합니까? – RiggsFolly

+0

예, 이것을 찾고 있습니다 –

+0

결국 효과가 있습니까? 파일을 가져 오지 않으면 어떻게됩니까 – RiggsFolly

답변

0

는 당신이 다음과 같을 수 함수로 작성된 루프

$max_loop = 5; 

while (FALSE == $url = file_get_contents('url.to.file')) { 
    $cur_loop++ 
    if ($cur_loop >= $max_loop) 
     // indicate an error so can be put on page 
     break; 
    } 
} 

에서 가져 오기를 실행 해 시도 할 수 파괴 될 것이다 루프로드 할 경우이 파일을로드하기 위해 5 번 시도 할 것이다

function get_url($the_url, $max_try) 
    $cur_loop = 0; 

    while (FALSE == $url = file_get_contents($the_url)) { 
     $cur_loop++ 
     if ($cur_loop >= $max_try) 
      break; 
     } 
    } 

    return $url; 
} 

//called like this 
$data = get_url('the.url',5); 
if ($data === false) { 
    // error message 
    exit; 
} 
+0

해결책 주셔서 감사합니다 :) –

+0

URL을위한 함수를 사용하여 작성할 수 있습니까? –

+0

자, 가서 함수로 썼다. – RiggsFolly

0

좋아, 내 자신의 솔루션에 대한 루프를 발견했다. 다음

   $url = file_get_contents('File'); 
       if ($url === false) { 
        for ($x = 0; $x <= 5; $x++) { 
         $url = file_get_contents('File'); 
         if ($url === true) { 
          break; 
         } 
        } 
       }