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.