PHP dispone dell'estensione curl per gestire le richieste HTTP. Possiamo usare tale estensione per verificare se un URL è raggiungibile o meno.
Per ottenere il nostro scopo è necessario impostare un timeout di connessione tra le opzioni di curl e reperire solo gli header HTTP:
function is_resource_available ($url)
{
if(!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
$curl_init = curl_init($url);
curl_setopt($curl_init,CURLOPT_CONNECTTIMEOUT,3);
curl_setopt($curl_init,CURLOPT_HEADER,true);
curl_setopt($curl_init,CURLOPT_NOBODY,true);
curl_setopt($curl_init,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($curl_init);
curl_close($curl_init);
if ($response) {
return true;
}
return false;
}
Un esempio d'uso di questa funzione è il seguente:
if (is_resource_available('https://www.google.it')) {
echo 'ok';
} else {
echo 'offline';
}