In PHP possiamo verificare se una richiesta HTTP va in timeout con cURL.
Possiamo implementare la seguente logica:
function is_request_timed_out($url = '', $timeout = 5) {
if(!filter_var($url, FILTER_VALIDATE_URL)) {
throw new InvalidArgumentException('Invalid URL');
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$resp = curl_exec($ch);
$result = curl_errno($ch) === 'CURLE_OPERATION_TIMEDOUT';
curl_close($ch);
return $result;
}