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 :

Extraire le nom d'un site dans une URL [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut Extraire le nom d'un site dans une URL
    Bonjour,

    J'aimerais savoir comment faire pour extraire le nom d'un site dans une URL par exemple extraire google dans http://www.google.com

    J'ai vraiment du mal à comprendre les fonctions regulieres, j'ai trouvé sa :
    $serveur = ereg_replace("(http://[^/]*/)(.*)", "\\1", $url);

    Mais sa me permet juste de remplacer http://www.google.com/fr par http://www.google.com par exemple.

    et je ne comprend pas le mécanisme des eregs ???

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Points : 44
    Points
    44
    Par défaut
    Si tu as du mal avec les regexp, va voir expreg.com, c'est bien expliqué. Remarque, il y a sans doute de bons tutos sur développez.net aussi, n'hésite pas à rechercher.

    Pour ton problème, je ferais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $url = 'http://www.google.com/';
    if (preg_match('/^http:\/\/(?:www\.)?(.+)\.[a-z]{3}(?:\/)?$/', $url, $tab)) {
        $site = $tab[1];
        echo $site;
    }
    Explications : L'expression régulière est entre //
    • ^ désigne le début de la chaîne, $ la fin de la chaîne
    • http:\/\/ signifie que la chaîne doit commencer par http:// (les / doivent être échappés en \/)
    • les parenthèses servent à délimiter un groupe qui sera capturé et mis dans $tab. Pour ne pas capturer des éléments inutiles, on utilise (?.
    • (?:www\.)? signifie donc que le groupe non capturé "www." est facultatif (c'est la signification du point d'interrogation)
    • Pareil pour le (?:\/)? à la fin : le / en fin de chaine est facultatif
    • \.[a-z]{3} désigne le top-level domain du site : 3 lettres minuscules
    • Au milieu, il ne reste que : (.+) : au moins un caractère qui sera capturé : c'est le nom du site

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Merci pour ton explication trés clair, je vais essayer de m'instruire un peu plus sur les regex maintenant

  4. #4
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Si tu fais cela, tu n'extrait pas le nom du site mais le nom de domaine.
    Pour extraire le nom du site il faut "ouvrir" la page et chercher dans la balise Title.

    Mais bon, il faut aussi toucher au regexp (qui veut dire expression reguliere)

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  5. #5
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    la balise title ce n'est pas le nom du site mais le nom de la page :p

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

Discussions similaires

  1. Recuperer nom du site dans une chaine de caractères
    Par DezMax dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2013, 21h24
  2. Supprimer le nom d'un dossier dans une url
    Par popovitch130 dans le forum Apache
    Réponses: 6
    Dernier message: 06/01/2009, 12h13
  3. Extraire le nom de fichier dans une URL
    Par rezuss dans le forum Delphi
    Réponses: 8
    Dernier message: 17/08/2006, 22h02
  4. extraire le nom d'un fichier dans une chaine sauf le car -
    Par digger dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 13/12/2005, 00h02
  5. Modification du nom d'un champ dans une table
    Par reef1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/06/2004, 10h55

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