function http_file_exists($url, $followRedirects = true)
{
$url_parsed = parse_url($url);
if(!@$url_parsed['scheme']) $url_parsed = parse_url('http://'.$url);
extract($url_parsed);
if(!@$port) $port = 80;
if(!@$path) $path = '/';
if(@$query) $path .= '?'.$query;
$out = "HEAD $path HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
if(!$fp = @fsockopen($host, $port, $es, $en, 5)){
return false;
}
fwrite($fp, $out);
while (!feof($fp)) {
$s = fgets($fp, 128);
if(($followRedirects) && (preg_match('/^Location:/i', $s) != false)){
fclose($fp);
return http_file_exists(trim(preg_replace("/Location:/i", "", $s)));
}
if(preg_match('/^HTTP(.*?)200/i', $s)){
fclose($fp);
return true;
}
}
fclose($fp);
return false;
}