循环 file_get_contents 直到在 php 中得到一个非空的 JSON
loop a file_get_contents until getting a non empty JSON in php
我有以下代码:
<?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/>";
}
API 使用的 (nanopool) 非常不可靠,我每 2 到 10 次调用就会得到一个非空 json(成功)。
我尝试循环 file_get_contents(do...while)直到得到一个非空的 json 但没有成功。在我得到答案之前,您可以建议循环什么?
也许你可以尝试这样的事情,但我仍然不建议在同步脚本(例如网页)中使用它,因为你无法控制获得成功答案所需的时间。
<?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
}
我有以下代码:
<?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/>";
}
API 使用的 (nanopool) 非常不可靠,我每 2 到 10 次调用就会得到一个非空 json(成功)。
我尝试循环 file_get_contents(do...while)直到得到一个非空的 json 但没有成功。在我得到答案之前,您可以建议循环什么?
也许你可以尝试这样的事情,但我仍然不建议在同步脚本(例如网页)中使用它,因为你无法控制获得成功答案所需的时间。
<?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
}