PHP – Como testar se uma URL remota existe utilizando CURL

Se você tem que testar se um arquivo local existe, provavelmente, você vai utilizar a função php file_exists, mas se você tem que testar um arquivo remoto, isto é uma url remota, que você pode usar CURL e obter os cabeçalhos retornados pela url requisitada. Se você receber um código 200, o seu arquivo encontra-se naquele servidor.

function endereco_existe($url) {  
    $ch = @curl_init($url);
    @curl_setopt($ch, CURLOPT_HEADER, TRUE);
    @curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
    @curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $status = array();
    preg_match('/HTTP\/.* ([0-9]+) .*/', @curl_exec($ch) , $status);
    return ($status[1] == 200);
}

Agora, se você não tem biblioteca CURL instalada você pode utilizar a função get_headers do php5, ela retorna uma matriz com os cabeçalhos.

function endereco_existe($url) {  
    $h = get_headers($url);
    $status = array();
    preg_match('/HTTP\/.* ([0-9]+) .*/', $h[0] , $status);
    return ($status[1] == 200);
}

Publicado por

adlerdias

Oi! Sou Adler Dias, 30, programador, trabalho com desenvolvimento de sistemas há 10 anos. Apaixonado pela minha namorada Alyne. Meu principal hobby é a corrida, já corri uma são silvestre e...

Um comentário em “PHP – Como testar se uma URL remota existe utilizando CURL”

Os comentários estão fechados.