2010-08-16 2 views
0

시간을내어 읽어 주셔서 감사 드리며 모든 단일 응답에는 만족할만한 품질이 없습니다. :)성공 또는 오류까지 PHP 재시도 스크립트

나는 오류 메시지가 표시 될 때까지 최대 3 번 다른 PHP 스크립트를 다시 시도하는 PHP 스크립트를 만들려고합니다. 아마 이것은 PHP 루프를 사용하여 수행 할 수 있다고 생각하고있어? 코드가 처음 성공적으로 실행되면 3 회 재 시도 할 필요가 없지만 처음 작동하지 않으면 오류 메시지가 표시 될 때까지 PHP 스크립트를 최대 3 회 재 시도해야합니다 .

PHP 코딩을 사용하여 필자는 "file_get_contents"를 사용하여 다른 위치에서 콘텐츠를 가져 오거나 가져 오는 스크립트를 작성한 다음 각 단어/데이터에 PHP 변수를 제공합니다. 이 모든 stackoverflow (나는 매우 감사)에 다른 회원으로부터 도움을 얻은했다. 아래의 코드는 그 모든 것입니다 :

$searchdata = file_get_contents('http://www.example.com'); 

list($no1, $no2, $no3, $no4, $no5, 
    $no6, $no7, $no8, $no9) = explode(" ", $searchdata); 

그래서,이 스크립트를 최대 3 번 반복하는 루프를 추가하고 싶습니다. 처음으로 작동하지 않는 경우.

스크립트가 첫 번째/두 번째/세 번째 시간에 작동하는지 여부를 결정하려면 "file_get_contents"를 사용할 때 텍스트 "#endofscript"또는 "failure"를 찾아야합니다. "#endofscript"텍스트는 "$ no9"변수에 있고 "failure"텍스트는 "$ no2"변수에 있어야합니다. "#endofscript"또는 "failure"이외의 다른 것이 있으면 오류로 간주해야하며 발견 될 때까지 반복해야합니다. 세 번째 시도 후에도 오류 메시지가 계속 나타나지 않으면 오류 메시지가 표시 될 수 있습니까? "오류 - 다시 시도하십시오."

귀하의 모든 도움에 감사 드리며 각 각의 답변에 감사드립니다. 자세한 내용이 필요하면 언제든지 문의하십시오. :) 그리고 다시, 나는 이것에 정말로 감사한다. :)

답변

1
$retries = 0; 
$searchdata = null; 

while(!$searchdata && $retries < 3) { 
    $retries++; 
    $searchdata = file_get_contents('http://www.example.com'); 
    list($no1, $no2, $no3, $no4, $no5, $no6, $no7, $no8, $no9) = explode(" ", $searchdata); 
    if($no9 != '#endofscript' || $no2 != 'failure') { 
     $searchdata = null; 
    } 
} 

if($searchdata) { 
    list($no1, $no2, $no3, $no4, $no5, $no6, $no7, $no8, $no9) = explode(" ", $searchdata); 
    // DO STUFF 
} else { 
    echo 'Please try again.'; 
} 
+0

안녕하세요 매트 윌리엄슨, 정말 감사 드리며 놀라운 코딩을 게시 한 것처럼 보입니다. 그러나 코드를 실행할 때 약간의 문제가있는 것 같다. php가 "Parse error : 구문 오류, 예기치 않은 T_INC"라는 오류를 표시하며 5 행에 있습니다. "retries ++;" 부품. 귀찮게해서 죄송합니다. 답장을 보내 주셔서 감사합니다. :) – AUllah1

+0

'$ retries ++'이어야하고, 매트는'$'기호를 잊어 버렸기 때문에, PHP는 존재하지 않는 상수를 증가 시키려고합니다. –

+0

예, 수정했습니다. Thanks Marc –