file_get_contents加载错误和循环?

时间:2017-01-11 09:08:01

标签: php file-get-contents

我只是在寻找使用file_get_contents加载内容的解决方案 我的脚本工作正常,但有时文件没有加载,我知道如何检查file_get_contents是否失败,但如何在没有页面重新加载的情况下再次尝试获取它?

$url = file_get_contents('url.to.file');
if ( $url === false )
{
    // code to do it again, how?  
}

2 个答案:

答案 0 :(得分:0)

好的,我找到了自己的for循环解决方案。 它会尝试5次加载文件,如果加载循环将会中断

                $url = file_get_contents('File');
                if ( $url === false ) {
                    for ($x = 0; $x <= 5; $x++) {
                        $url = file_get_contents('File');
                        if ( $url === true ) {
                            break;
                        }
                    } 
                }

答案 1 :(得分:0)

然后你可以尝试运行循环中的get

$max_loop = 5;

while (FALSE == $url = file_get_contents('url.to.file') ) {
    $cur_loop++
    if ( $cur_loop >= $max_loop )
        // indicate an error so can be put on page
        break;
    }
}

写在一个函数中,它可能看起来像这样

function get_url($the_url, $max_try)
    $cur_loop = 0;

    while (FALSE == $url = file_get_contents($the_url) ) {
        $cur_loop++
        if ( $cur_loop >= $max_try )
            break;
        }
    }

    return $url;
}

//called like this
$data = get_url('the.url',5);
if ( $data === false ) {
    // error message
    exit;
}