我正在尝试使用API访问数据,并希望在HTML表格上显示数据。很多时候这段代码运行没有任何问题,但有时它显示错误
Notice: Undefined property: stdClass::$list_data
Notice: Trying to get property of non-object
我在谷歌搜索这个问题,但无法解决这个问题,因为我是初学者。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$opts = array(
'http' => array(
'method' => 'POST'
)
);
$context = stream_context_create($opts);
$json = file_get_contents('https://faucethub.io/api/listv1/faucetlist?api_key=API_KEY', false, $context);
$obj = json_decode($json);
?>
<?php
$gg = $obj->list_data->premium->BTC;
if (is_array($gg))
{
foreach(array_slice($gg, 0, 350) as $btcf)
{
$bh = $btcf->health;
echo "<tr>
<td>$btcf->name</td>
<td><span class='btn btn-xs btn-success'>$btcf->reward</span></td>
<td><span class='btn btn-xs btn-info'><i class='fa fa-clock-o'></i> $btcf->timer_in_minutes</span></td>
<td><span class='glyphicon glyphicon-bitcoin'>$btcf->paid_week</span></td>
<td>$btcf->active_users</td>
}
}
?>
如果你有助于解决这个问题,那么我可以用它来学习新东西。如果需要任何其他信息,我可以更新它。
答案 0 :(得分:0)
Notice: Trying to get property of non-object
的显示表示json_decode($json);
没有返回预期的对象且出错。
要检查它,你可以使用类似的东西
$obj = json_decode($json);
if (json_last_error() !== JSON_ERROR_NONE) {
// handle json error.
$errorMessage = json_last_error_msg();
echo $errorMessage;
// or
// throw new Exception($errorMessage);
}
文档:
答案 1 :(得分:0)
尝试类似这样的内容,而不是上一个<?php
阻止:
<?php
foreach($obj as $company) {
echo $company->name.'<br>';
echo $company->reward.'<br>';
echo $company->timer_in_minutes.'<br>';
echo $company->paid_week.'<br>';
echo $company->active_users.'<br>';
}