PHP: effettuare il ping di un URL con curl

Short link

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';
}

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.