@kirill-93

Как установить лимит на выполнение запроса в цикле PHP?

Есть список адресов по API, из которых нужно получать данные. Сервер с этим API сделан так, что при превышении лимита он "вешает" запрос. То есть не возвращает ошибку, а просто висит запрос и все. Как можно средствами PHP выставить лимит на ожидание ответа и обрывать запрос самостоятельно?
set_time_limit не подходит, потому что он обрывает весь скрипт.

$urls = ['url1', 'url2', ..., 'url5000'];

foreach ($urls as $url) {
 //Вот тут нужно выставить лимит, например 10 секунд. Если он превышен, то обрывать запрос и брать следующий.
 $json = file_get_contents($url);
}


Подскажите, как это можно сделать?
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
$ctx = stream_context_create(array('http'=>
    array(
        'timeout' => 10,  // Seconds
    )
));

echo file_get_contents('http://example.com/', false, $ctx);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы