Заставить file_get_contents ждать получение ответа

Такая проблема: из-за того, что некое api отдаёт ответ с огромной задержкой, file_get_contents не получает ответ в отведенное время и возвращает FALSE... В результате код

$json = json_decode(file_get_contents('https://_api.whois.vu/?q=proverka222.com&clean',false), TRUE);

не может успешно выполниться. Нагуглил только вариант: sleep();

$json = json_decode(file_get_contents('https://_api.whois.vu/?q=proverka222.com&clean',false), TRUE);
sleep();

очевидно, что этот вариант не решает проблему, соотв. нужно именно чтобы file_get_contents ждала некоторое время /или до получения ответа. Каким образом можно заставить file_get_contents подождать пока не будет получен ответ?


Ответы (2 шт):

Автор решения: Swartex

очевидно, что этот вариант не решает проблему

очевидно что file_get_contents вам не подходит к тому же она не совсем подходит для работы с апи. используйте cURL

https://www.php.net/manual/ru/book.curl.php

→ Ссылка
Автор решения: Антон Скородумов

В официальной справке рекомендую сделать следующим образом

$ctx = stream_context_create(array( 
    'http' => array( 
        'timeout' => 60 
        ) 
    ) 
); 
$json = json_decode(file_get_contents('https://_api.whois.vu/?q=proverka222.com&clean',false, $ctx), TRUE);
→ Ссылка