循环一个file_get_contents直到在php中获得非空的JSON

I have the following code:

<?php
$json = file_get_contents("https://api.nanopool.org/v1/eth/payments/0x218494b2284a5f165ff30d097d3d7a542ff0023B");
$decode = json_decode($json,true);
foreach($decode['data'] as $val){   
 echo date('Y-m-d',$val['date']).' -- '.$val['amount'].' -- '.$val['txHash'].' -- '.$val['confirmed'];
   echo "<br/>";
 }

The API used (nanopool) being extremely unreliable, I get a non empty json (success) every 2 to 10 calls.

I tried to loop the file_get_contents (do... while) until getting a non empty json without success. What can you recommend to loop until I get an answer?

Maybe you can try something like this, still I don't recommend using this within a synchronous script (eg a web page) because you can't control the time needed to get a successfull answer.

<?php
function getFileFTW($url)
{
    $fuse = 10;//maximum attempts
    $pause = 1;//time between 2 attempts
    do {
        if($fuse < 10)
            sleep($pause);
        $s = @file_get_contents($url);
    }
    while($s===false && $fuse--);
    return $s;
}


$json = getFileFTW("https://api.nanopool.org/v1/eth/payments/0x218494b2284a5f165ff30d097d3d7a542ff0023B");
if($json) {
    $decode = json_decode($json,true);
    //...
}
else {
    //json not loaded : handle error
}