Tester si une image distante existe
	
	
		bonjour
voila je voudrai savoir comment faire pour savoir si une image distante existe ou non c'est a dire une image sur un autre site exite pour lafficher sur mon site sinon afficher une image de substitution
voici ce ke j'ai commencer a faire, mais si le site distant redirige sur l'erreur 404 ma fonction ne marche pas du coup :
j'ai fais une fonction general et 2 fonctions une qui teste si le fichier distant existe et l'autre la taille.
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
   | function test_image($url)
{
  $vartemp="http://thumbnails.alexa.com/image_server.cgi?size=large&url=$url";
  $tableau = explode("/",$url);
   $fichier=$url."/ascreen.jpg";
   if(isset($tableau[3]))
   {
      $fichier=$url."ascreen.jpg";
   }
 
  if(remote_file_exists ($fichier))
  { 
    $size=taille_fichier($fichier);
    if(($size)<=4000)
    {
 
     return ($fichier);
 
    }
    else
    {
      return $vartemp;
 
    }
  }
  elseif(remote_file_exists($vartemp))
  {
     return $vartemp;
  }
}
 
function remote_file_exists ($url)
{ 
 
/* 
   Return error codes: 
   1 = Invalid URL host 
   2 = Unable to connect to remote host
*/    
 
   $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); } 
   } 
   fclose ($fp); 
   $arr_headers = explode("\n", $headers); 
   $return = false; 
   if (isset ($arr_headers[0])) 
   { $return = strpos ($arr_headers[0], "404") === false; }
   return $return; 
} 
 
function taille_fichier($url)
{
  $buffer = '';
  if($fd = fopen ($url, "r")) {
    while (!feof($fd)) {
        $buffer .= fgets($fd, 4096);
    }
    fclose ($fd);
  }
  $size = strlen($buffer);
  return $size; | 
 merci par avance