Herkes farklı telden çalmış. Bu fonksiyonu kullanabilirsin.

function url_exists($url) {
$hdrs = @get_headers($url);

//$cType= @$hdrs[1];

return is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false;
}


Ek olarak

$cType= @$hdrs[1];

bu kısım değişkene "Content-Type: image/jpeg" ataması lazım eğer link sağlamsa. Yani bunu da kontrol ettirebilirsin.

Normal şartlarda kontrol etmene gerek kalmaz bu ikinciyi çünkü linklerin sonu .jpg le bitiyor zaten %90 content-type image/jpeg olur ama bazı sitelerde linkin kırık olması durumunda resim kaldırılmış/bulunamadı/not found tarzı bir sayfa döndürüyor, o durumda link kırık görünmez ve fonksiyon yine true verir. Bunu da göz önünde bulundurmak istersen true vermesi durumunda ikinci bir kontrol olarak content-type'ı sorgulayabilirsin.