PHP重试脚本直到成功或错误

时间:2010-08-16 20:37:03

标签: php loops variables file-get-contents

感谢您抽出宝贵时间阅读本文,我将感谢每一个回复,无论内容的质量如何。 :)

我正在尝试创建一个php脚本,它会重试另一个php脚本最多3次,直到显示错误消息。我想也许这可以使用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 个答案:

答案 0 :(得分: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.';
}