IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Réseau] Tester la validité d'une URL


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 22
    Points
    22
    Par défaut [Réseau] Tester la validité d'une URL

    Je voudrais tester si un lien existe

    pas s'il est correct http://www.dajij.com

    mais tester l'existence d'un lien comme http://www.6dfdsf6dfds65fdsfdsf.com

    MERCI BEAUCOUP POUR TOUT A L'EQUIPE

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Avec la fonction fsockopen, par exemple ? (la fonction parse_url pourrait vous être utile).

    Le but consiste à vous limiter aux adresse et port pour vérifier si un serveur est en ligne ou de vérifier si un document est disponible à cette adresse ?

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 22
    Points
    22
    Par défaut ca marche pa
    Comment peut-on tester avec cette fonction ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    A défaut d'avoir des détails, pourrait-on avoir le code correspondant ?

    Si vous voulez vérifier l'existence d'un document avec cURL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function check_url($url, $timeout = 10, $maxredirs = 10)
    {
        $ret = FALSE;
     
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_NOBODY, TRUE);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($ch, CURLOPT_MAXREDIRS, $maxredirs);
        if (curl_exec($ch)) {
            $ret = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        }
        curl_close($ch);
     
        return ($ret == 200);
    }
    Même chose avec fopen (requiert allow_url_fopen à On) et une version 5 de PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function tester_url($url, $timeout = 10, $maxredirs = 10) {
        $options = array(
            'http' => array(
                'max_redirects' => $maxredirs, // PHP 5.1.0 et +
                'method' => 'HEAD',
                'header' => '',
                'timeout' => $timeout // Effectif pour les versions 5.2.1 et supérieures
            )
        );
        $contexte = stream_context_create($options);
        @ $fp = fopen($url, 'r', FALSE, $contexte);
        if (!$fp) {
            return FALSE;
        }
        $meta = stream_get_meta_data($fp);
        fclose($fp);
        if (preg_match('#^HTTP/1\.[01] ([0-9]{3})#m', implode(PHP_EOL, array_reverse($meta['wrapper_data'])), $m)) {
            $ret = $m[1];
        }
     
        return ($ret == 200);
    }
    Ces deux méthodes présentent l'avantage, par rapport à la fonction fsockopen, de gérer les redirections.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] Tester la validité d'une URL Scheme
    Par Fooshi dans le forum Langage
    Réponses: 1
    Dernier message: 19/04/2012, 13h12
  2. [Débutant]Tester la validité d'une URL
    Par Invité dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 13/03/2008, 15h27
  3. Tester la validité d'une url d'un site web
    Par italiasky dans le forum Langage
    Réponses: 21
    Dernier message: 28/02/2007, 15h39
  4. Comment tester la validité d'une adresse mail
    Par jmoez dans le forum Oracle
    Réponses: 1
    Dernier message: 19/04/2006, 13h00
  5. [web] tester la validiter d'une URL
    Par zebiloute dans le forum Web
    Réponses: 4
    Dernier message: 25/11/2002, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo