С моего сайта идет запрос на существование файла на другом сайте, но ответа от сервера нет и через 30 сек выбивает таймлимит. Как сделать, что если в течении 5 сек нет ответа, то работа скрипта прекращается и он показывает только инфу которая у меня в базе
ОБСУЖДЕНИЕ
Если нет ответа от сервера, то работа прекращается
skif88, Можно так, но это некрофилия:
Но лучше юзать cURL:
ini_set('default_socket_timeout', 900); // 900 секунд, т.е. 15 минут
$stream = stream_context_create(array('http' =>
array('timeout' => 5 // 5 секунд
)
));
$query = file_get_contents('http://site.ru/file.txt', false, $stream);
if($query !== false){
// тут тело выполнения если ответ не пришел в течении 5 секунд
}
Но лучше юзать cURL:
$url = "http://site.ru/file.txt"; // url файла
$ch = curl_init(); // Инициализация библиотеки cURL
$timeout = 5; // Твой таймаут в секундах
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
if($result !== false){
// Тело
}
UndeX, Хорошо, спасибо, с курл попробую.