循环直到使用PHP中的fopen()进行连接

时间:2016-12-15 21:45:36

标签: php

运行我的脚本以打开带有fopen()的CSV文件时,很少会因以下错误而无法加载:

Warning: fopen(https://www.link.com/csv.csv): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable in C:\xampp\htdocs\create_products.php on line 28

我的代码如下:

$csv = array();
$line = array();
if (FALSE !== $handle = fopen("https://www.fmasarovic.com/export_feed.php?preset=poshbag_boutique", "r")) {
    while (FALSE !== $row = fgetcsv($handle)) {
        $csv[] = $row;
    }
}
foreach (array_slice($csv, 1) as $row) {
    $new_row = array();
    for ($i = 0, $c = count($csv[0]); $i < $c; ++$i) {
        $new_row[$csv[0][$i]] = $row[$i]; 
    }
    $line[] = $new_row;
}

我把这个错误归结为服务器问题,我可以接受这种情况有时会发生,所以我想知道的是,是否可以将第一行代码放在循环中,这将继续尝试连接直到成功连接,如果是,我需要进入哪个方向?

这很重要,因为我将每2小时设置一个cron作业,因此我不希望在发生此错误时脚本运行之间有4小时的间隔。

非常感谢您提前的时间。

1 个答案:

答案 0 :(得分:0)

使用在连接失败时重复while()的{​​{1}}循环。

fopen()