Чтобы проверить существование по HTTP, вам необходимо проверить коды ответов HTTP.Самый простой способ сделать это - использовать curl.Попробуйте это:
$url = 'http://google.com/this_does_not_exist.jpg';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);//timeout
$res = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
switch ($code % 100){
case 2: echo "exists\n"; break;
case 3: echo "too many redirects\n"; break;
case 4: echo "does not exist\n"; break;
case 5: echo "5xx error - may or may not exist once server fixed\n"; break;
default:
echo "Something weird. HTTP response code = $code\n";
}