PHP: Comment vérifier qu'une url est valide ?

Salut les p'tits loups,
Est ce que quelqun aurait une fonction en php pour vérifier qu'une url est valide. Attention, "valide" dans le send "l'adresse pointe quelque part" (pour éviter les liens morts).
Merci à tous et A+
NBO

2 réponses

  1. Salut, utilise ce petit bout de code trouvé sur http://www.capitools.up1.fr

    <?php
    if (!isset($url)) $url = "www.capitools.up1.fr";
    $fp = fsockopen($url, 80, &$errno, &$errstr, 30);
    if (!$fp) {
    echo "Erreur: <B>$errstr</B> ($errno)<BR>"; }
    else { fputs($fp,"GET / HTTP/1.0nn");
    $reponse = fgets($fp, 128);
    echo "Réponse OK: $url existe bien<BR>";
    fclose($fp); }
    ?>

    @+
    1. Modérateur
      Bonjour,
      tu peux peut-re t'inspirer de qqch du genre
      <?php
      $liens = array("http://www.imtel.com", "http://www.wanadoo.be",
      "http://wwwn.nimportequoi.com");

      foreach($liens as $link)
      {
      $conn = @fopen($link, "r");
      if(! $conn )
      {
      print("Could not open " .$link . "<br />\n");
      }
      else
      {
      print_r($conn);
      if( ! feof($conn))
      {
      $firstline = fgets($conn,2048);
      print("$firstline <br />\n");
      }
      fclose($conn);
      }
      }
      ?>

      A améliorer...(il faudrait définir des timeout pour les connections)
      ou encore regarde sur
      http://php.easynet.be/manual/en/function.stream-set-timeout.php
      (PHP 4 >= 4.3.0)

      Johan
      The software said "Requires Windows98, Win2000, or better,
      So I installed Unix.