PHP重试脚本,直到成功或错误
问题描述:
感谢您花时间阅读本文,我将不胜感激每一个回应内容的质量。 :)PHP重试脚本,直到成功或错误
我试图创建一个PHP脚本,重试另一个PHP脚本最多3次,直到显示错误消息。我在想也许这可以使用PHP循环完成?如果代码第一次成功运行,那么不需要重试3次,但是如果第一次运行不成功,那么应该重试php脚本最多3次,直到显示错误消息。
使用php编码,我设法创建一个脚本,使用“file_get_contents”从其他位置抓取/提取内容,然后为每个单词/数据提供一个php变量。所有这些都是通过从其他成员获得帮助来完成的(我非常感谢)。下面的代码是什么这一切:
$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”之外的其他内容应计为错误,应循环找到。如果在第三次尝试后仍未找到,是否可以显示错误消息?如“错误 - 请再试一次”。
谢谢你的一切协助,我会很感激每一个回复。如果您需要更多的细节,请随时询问。 :)而且,我真的很感谢这一点。 :)
答
$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.';
}
嗨马特威廉姆森,我真的很欣赏的回应,它似乎像你已经发布了一些惊人的编码。但是,似乎有一个小问题,当我运行代码时,php给了我错误“解析错误:语法错误,意外的T_INC”并且它在行5上。哪个是“retries ++”?部分。对不起,再次感谢您的回复。 :) – AUllah1 2010-08-16 20:54:38
它应该是'$ retries ++',Matt忘记了'$'符号,所以PHP试图增加一个不存在的常量。 – 2010-08-16 20:56:19
是的,纠正它。谢谢Marc – 2010-08-16 21:10:01