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

NBO -  
 Formateurinternet -
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. Formateurinternet
     
    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); }
    ?>

    @+
    7
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    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.
    0