function remote_file_exists ($url)
{
/*
Permet de tester si les urls sont valides
Return error codes:
1 = Invalid URL host
2 = Unable to connect to remote host
3 = Le fichier n'est pas une application
*/
$head = "";
$url_p = parse_url ($url);
if (isset ($url_p["host"]))
{ $host = $url_p["host"]; }
else
{ return 1; }
if (isset ($url_p["path"]))
{ $path = $url_p["path"]; }
else
{ $path = ""; }
$fp = @fsockopen ($host, "80", $errno, $errstr, 20);
if (!$fp)
{ return 2; }
else
{
$parse = parse_url($url);
$host = $parse['host'];
fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
fputs($fp, "HOST: ".$host."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while (!feof ($fp))
{
$headers .= fgets ($fp, 128);
}
// -- est ce une application ? --
$type = substr_count($headers,"Content-Type: application");
if ($type!=1){
return 3;
}
}
fclose ($fp);
$arr_headers = explode("\n", $headers);
$return = false;
if (isset ($arr_headers[0]))
{ $return = strpos ($arr_headers[0], "404") === false; }
return $return;
}
Partager