8795 sujets

Développement web côté serveur, CMS

bonjour
j ai un probleme avec ce script


<?php
$url = $_GET['url'];
   
    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;
   }
  
   /* utilisation */
   
   if (remote_file_exists ($url))
   { print ($url . " file exists" ); }
   else
   { print ($url . " file doesn't exist!" ); }
   ?>
?>


le script fonctionne nickel mais le probleme c est que le site sur lequel je fait les test de lien mort sont sur un site equipe d un urlrewriting donc dans tous les cas mon lien est toujours OK donc je voulai savoir si il etait possible que se script detect si la page demande nous envoi un fichier au format soi .divx soi .avi

c'est possible ?

merci d avance
Bonjour,

Vu que tu fais une requête via un socket et que tu obtiens les headers de la réponse tu peux vérifier le content-type qui sera différent pour un fichier vidéo (video/mpeg par exemple) et pour une page d'erreur en html (text/html).