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