Я пытаюсь получить валюты евро, доллара и турецких лир и сравниваю их. Но иногда API (я использую случайные значения JSON веб-сайта валюты) не может ответить.
Невозможно получить какое-либо значение и загрузку страницы через 30 секунд, после того, как время выполнения было сделано, появляется ошибка.
То, что я пытаюсь сделать, это: если он не мог получить значение в 1 секунду (или меньше) от API, вернуть ноль. Как я могу это сделать. Если кто-нибудь может помочь, я был бы рад. Это мои php коды. Я пытался использовать, если еще в этом, но не работал.
ps: у меня есть ajax-коды для этого, они обновляются при изменении значения. Это работает в большинстве случаев. Но 2-3 раза в день выдает ошибку.
$json_eur = file_get_contents('https://doviz.com/api/v1/currencies/EUR/latest');
$val_eur = json_decode($json_eur, true);
echo $val_eur['selling'];
EDIT
Это решение. Добавил несколько кодов в ответ JRoss.
$ctx_dollar = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
$usd_url = 'https://doviz.com/api/v1/currencies/USD/latest';
if (@file_get_contents($usd_url)):
$json_usd = file_get_contents($usd_url, 0, $ctx_dollar);
$val_usd = json_decode($json_usd, true);
if (is_numeric($val_usd['selling'])) {
echo $val_usd['selling'];
}
else {
echo "loading...";
}
endif;