Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP重试脚本,直到成功或出错_Php_Loops_File Get Contents - Fatal编程技术网

PHP重试脚本,直到成功或出错

PHP重试脚本,直到成功或出错,php,loops,file-get-contents,Php,Loops,File Get Contents,我正在尝试创建一个php脚本,它将重试另一个php脚本最多3次,直到显示错误为止。我在想,也许这可以通过使用php循环来实现?如果代码第一次运行成功,则无需重试3次,但是,如果第一次不运行,则应最多重试3次php脚本,直到显示错误消息 通过使用php编码,我成功地创建了一个脚本,该脚本使用“file_get_contents”从另一个位置获取内容,然后为每个单词/数据提供一个php变量。所有这些都是通过在stackoverflow上获得其他成员的帮助来完成的(我非常感谢)。下面的代码说明了这一切

我正在尝试创建一个php脚本,它将重试另一个php脚本最多3次,直到显示错误为止。我在想,也许这可以通过使用php循环来实现?如果代码第一次运行成功,则无需重试3次,但是,如果第一次不运行,则应最多重试3次php脚本,直到显示错误消息

通过使用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次;如果第一次不起作用。要确定脚本是否第一次/第二次/第三次工作,使用“文件获取内容”时应找到文本“#endofscript”或“failure”。如果显示除“#endofscript”或“failure”以外的任何其他内容,则应将其视为错误,并循环直到找到为止。如果第三次尝试后仍找不到,是否会显示错误消息?例如“错误-请重试”

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

$maxTries=3;
对于($try=1;$try 3),脚本失败

嗨,韦比戴夫,非常感谢你的回复:)。我稍微了解代码的工作原理,但是我相信目前代码不知道何时成功,因为“$success”变量为空。我将如何将“#endofscript”和“failure”文本合并为成功,而将其他任何内容合并为错误?另外,如果第三次错误消息不起作用,我该如何显示它?亲切的问候,我非常感谢你的回答。关于:
if($no9==''endofscript'){$success=true;}或者{$success=false;}
if($try>3){echo'错误-请再试一次';}
谢谢你的回复webbiedave,我真的很感谢他们。这些代码似乎可以完成这项工作,但是,我将如何着手合并这些代码?它们看起来像:$maxTries=3;对于($try=1;$try 3){echo'错误-请重试';}}},并且,当它显示错误消息时,是否可以将其作为php变量?这样我就可以在第页的其他地方显示消息,并为这一麻烦表示歉意,但是$success变量不是空的吗?就好像它没有任何意义?再次感谢你的回答。谢谢你所做的一切。:)哈哈,要做到这一点,我至少需要15个声誉;我没有。但是,我可以把这个问题作为公认的答案
$maxTries = 3;
for ($try=1; $try<=$maxTries; $try++) {
    // your code
    if ($success) {
        break;
    }
}

// if $try > 3, script failed