Vai al contenuto

Verificare l’esistenza di un URL con PHP

In questo articolo vedremo come controllare l’esistenza di un determinato URL utilizzando PHP. In parole povedere dobbiamo verificare se sul server esistono o meno i contenuti che stiamo richiedendo attraverso l’URL. Possiamo agevolmente verificare l’esistenza di URL in due modi:

  • il primo è la funzione get_header();
  • il secondo metodo è l’uso della libreria CURL.

Fondamentalmente bisogna verificare l’header HTTP dell’URL e sulla base di questo determinare se esiste oppure no. Il codice 200 rappresenta un URL funzionante mentre il codice 404 rappresenta la pagina non trovata, quindi un URL non funzionante o inesistente.

Metodo 1: Funzione get_headers()

Usando la funzione get_headers siamo in grado di ottenere le informazioni dell’Header HTTP dell’URL.

$url = "http://www.domain.com/demo.jpg";
$headers = @get_headers($url);
if(strpos($headers[0],'404') === false) {
    echo "URL esiste";
}
else {
    echo "URL non esiste";
}

Nota: Se si imposta il secondo parametro della funzione get_headers() a true allora si otterrà il risultato in un array associativo.

Metodo 2: libreria cURL

$url = "http://www.domain.com/demo.jpg";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);
$result = curl_exec($curl);
if ($result !== false) {
    $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);  
    if ($statusCode == 404) {
        echo "URL non esiste"
    }
    else {
        echo "URL esiste";
    } 
}
else {
    echo "URL non esiste";
}

Nota: Abbiamo usato CURLOPT_NOBODY per controllare solo per l’instestazione, il resto del contenuto non ci interessa.

Condividete le vostre opinioni / commenti / suggerimenti qui sotto.