Как получить json api, который не читает каждый раз лучшим способом

У меня есть эта функция в php, которая пытается прочитать API JSON, и это может занять до 10 попыток, чтобы прочитать его, и я хочу отправить этот ответ для просмотра, но функция занимает много времени для запуска и часто не будет работать, как можно Я заставляю код работать лучше

Изменить Изменить вопрос

Это в основном это сейчас, это вроде работает, но я хотел бы иметь лучшую альтернативу.

$getjson = null;

for($i =0; i < 10; $i++){
try{
$getjson = json_decode(file_get_contents('url'));
if(array_key_exists('index', $getjson)) break;
}catch(\Exception $e){}
}

return $getjson;

-1

Решение

Вы говорите, что ваш код работает, но возвращает ноль, если он ничего не читает. Приведенный ниже код позволит избежать этого конкретного сценария.

$get = null;

while($get == null || $get === false) {
$get = file_get_contents('url');
}

return json_decode($get);

ПРИМЕЧАНИЕ: этот код Можно технически быть бесконечной петлей, предполагая, что это постоянно оценивает этот путь. Это было бы очень Рекомендуется провести какую-то проверку, чтобы убедиться, что веб-сервер не завершает работу сценария преждевременно и не работает вечно. У меня был бы установлен предел для того, сколько раз вы на самом деле должны пытаться получить, и вместо этого запустить это как цикл for. Затем убедитесь, что у вас есть запасной вариант, если все итерации все еще не выполнены.

Что-то вроде этого было бы более целесообразно:

$get = null;
$limit = 100;
$i = 0;

do {
$get = file_get_contents('url');
$i++;

} while(($get == null || $get === false) && $i < $limit);

return json_decode($get);

Наконец, если вам не нравится do-while, вы можете сделать это и с синглом for.

$get = null;

for($i = 0; ($get == null || $get === false) && $i < $limit; $i++) {
$get = file_get_contents('url');
}

return json_decode($get);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector