PHP - 如果没有结果,请等待再试一次

时间:2015-08-16 03:59:35

标签: php sleep

我通过GET协议调用Web服务,响应将在页面上回显为true或false。

我尝试编写逻辑,如果Web服务返回false,将重试最多3次。但是,我第一次想要等待1秒,第二次想要等待10秒,第三次我要等待60秒。

这就是我现在拥有的。有没有更好的方法来实现这一目标?

if ($wsReturn == 'false') {
    sleep(1);
    $wsReturn = strip_tags(file_get_contents($link));

        if ($wsReturn == 'false') {
            sleep(10);
            $wsReturn = strip_tags(file_get_contents($link));

                if ($wsReturn == 'false') {
                    sleep(60);
                    $wsReturn = strip_tags(file_get_contents($link));
                }
        }
}

1 个答案:

答案 0 :(得分:2)

只需使用数组和循环即可以任意暂停时间进行任意数量的迭代

$i = 0;
$sleep = [1, 10, 60];

while( $wsReturn == 'false' )
{
    sleep( $sleep[$i] );

    // your logic goes here
    $wsReturn = strip_tags(file_get_contents($link));


   if( ++$i >= count($sleep) )
      break;
}