PHP dispone dell'estensione cURL per gestire le connessioni remote e lo streaming di rete. Possiamo usare tale estensione per verificare se un sito è offline o meno. Vediamo come fare.
Per ottenere il nostro scopo è necessario impostare un timeout di connessione tra le opzioni di cURL:
function isDomainAvailable ($domain)
{
if(!filter_var($domain, FILTER_VALIDATE_URL)) {
return false;
}
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($curlInit);
curl_close($curlInit);
if ($response) {
return true;
}
return false;
}
Un esempio d'uso di questa funzione è il seguente:
if (isDomainAvailable('http://www.google.it')) {
echo 'ok';
} else {
echo 'offline';
}