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 :

[PHP] Verification URL


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Par défaut [PHP] Verification URL
    Bonjour,

    Afin de vérifier si tous les liens de mon site son valide ou pas, j'utilise cette fonction.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function checkurl($url){
        // vérification du protocole HTTP
        if (!eregi("^http://", $url)) {
            return FALSE;
        }
        $details = parse_url($url);
        // vérification du port 80 lié au protocole HTTP
        if (!isset($details['port'])) {
            $details['port'] = "80";
        }
        // vérification du chemin
        if (!isset($details['path'])) {
            $details['path'] = "/";
        }
        // vérification de l'adresse du serveur
        if (!ereg("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+", $details['host'])){
            $details['host'] = gethostbyname($details['host']);
        }
        // ouverture d'une connexion vers le serveur
        if ($sock = fsockopen( $details['host'], $details['port'], &$numero_erreur, &$texte_erreur)){
            $requete = "GET ".$details['path']." HTTP/1.1\r\n";
            $requete .= "Host: ".$details['host']."\r\n\r\n";
            // envoie d'une requête HTTP GET
            fputs($sock, $requete);
            // réception de la réponse du serveur
            $str = fgets($sock, 1024);
            while(!ereg('^HTTP/1.1 ', $str)){
                $str = fgets($sock, 1024);
            }
            // fermeture de la connexion
            fclose($sock);
            list($http, $str, $texte) = explode(" ", $str, 3);
            return array($str, $reponse[$str]);
        }
        return FALSE;
    }

    Le probleme de cette fonction est sa lenteur quand un site n'existe pas. Comment puis-je faire pour améliorer cela?

    merci de votre aide

    J'ai penser à Chekdns mais je sais pas comment l'implémenter ici.

  2. #2
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Ben si le site n'existe pas, le temps qu'elle reçoive l'info ne depend pas de la fonction je pense ...

Discussions similaires

  1. passage de Var Js vers PHP via URL
    Par olkainflex dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/05/2008, 16h43
  2. Concepteur web : PHP/MySQL, Url Rewriting, Web designer
    Par nnet_mathieu dans le forum Demandes
    Réponses: 0
    Dernier message: 02/08/2007, 19h12
  3. [RegEx] Verification URL par expression regulière
    Par Yekhen dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2007, 15h57
  4. code php verification svp
    Par zprr21 dans le forum Langage
    Réponses: 18
    Dernier message: 07/02/2007, 15h14
  5. [PHP-JS] [URL] Changer une partie d'URL
    Par murrigane dans le forum Langage
    Réponses: 4
    Dernier message: 19/05/2006, 13h17

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