0

感谢您花时间阅读本文,无论内容质量如何,我都会感谢每一个回复。:)

我正在尝试创建一个 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”或“失败”之外的任何其他内容,则应将其视为错误并应循环直到找到。如果在第三次尝试后仍然没有找到,是否会显示错误消息?例如“错误 - 请重试”。

感谢您的所有帮助,我将感谢您的每一个回复。如果您需要更多详细信息,请随时询问。:) 再次,我真的很感激这一点。:)

4

1 回答 1

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.';
}
于 2010-08-16T20:40:14.337 回答