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 :

parser une url relative


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Points : 102
    Points
    102
    Par défaut parser une url relative
    Bonjour,

    Je reçois sans cesse en référencement, des sites de ce genre:


    h*tp://momopino.carrefourinternet.com/fr/portail
    h*tp://debulbe.free.fr/paid/index.php
    h*tp://leclub.easyrencontre.com

    etc... Sur mon site, je n'accepte que les sites avec un nom de domaine propre et j'aimerais
    faire un tri automatique pour éliminer ces sites

    j'ai donc essayé avec un parse_url() mais selon le manuel php /
    Note : Cette fonction ne fonctionne pas avec les URLs relatives....

    j'ai essayé ceci qui fonctionne mais je n'arrive pas extraire uniquement "carrefourinternet.com" de l'host... grrrrr......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <?PHP
    $url = "http://momopino.carrefourinternet.com/fr/portail";
     
     
      if ($url["host"] == "momopino.carrefourinternet.com") 
      {
      echo "pas bon";  
      }
      else {
      echo "bon";
      }
    ?>
    Avec vous une idée pour éliminer par ex: tous les urls avec un

    .free.fr
    .easyrencontre.com
    .carrefourinternet.com

    je pensais à une sorte de boucle qui éliminerait automatiquement ces 3 domaines relatifs ci-dessus, mais je sais pas trop comment faire....

    ou définir une boucle qui retourne pas bon si dans $url["host"] il y a deux points....

    D'avance merci de votre aide et de votre suggestion

    Cordialement
    Yule

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Plusieurs solutions sont envisagrables mais je te conseillerai les expressions régulière c'est pareil en fait.

    Tiens vas sur ce site pour plus d'infos: http://www.expreg.com
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  3. #3
    Membre régulier
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Points : 102
    Points
    102
    Par défaut
    re,

    j'ai déjà regarder... et aucune soluce sur ce site....

    j'ai essayé ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $blurb = "*";
    $url = "http://momopino.carrefourinternet.com/fr/portail";
    $bannir = "carrefourinternet.com|portail";
    echo preg_replace("/(^|[^a-zA-Z])($bannir)([^a-zA-Z]|$)/si", '\\1'.$blurb.'\\3', $url);
     
    // = http://momopino.*/fr/*
    Maintenant je fais comment pour dire:

    si dans l'url il y a un * affiche "pas bon"

    D'avance merci

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    un exemple :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <?php
     
    // tableau de fin d'url interdite
    $interdits = array(
          '.free.fr',
          '.easyrencontre.com',
          '.carrefourinternet.com');
     
     
    // modification en patterns
    foreach ($interdits as $cle => $valeur) {
       // on echappe les points et on ajoute le metacaractere "fin de ligne"
       $interdits[$cle]=str_replace('.','\.',$valeur).'$';
    }
     
     
     
    // tableau d'url a tester
    $exemple = array("http://www.montout.free.fr",
          "http://www.montout.wanadoo.fr",
          "http://www.montout.aol.com",
          "http://www.montout.easyrencontre.com",
          "http://www.montout.hosting.fr",
          "http://www.montout.m6.fr",
          "http://www.montout.carrefourinternet.com",
          "http://www.montout.carrefourinternet.com.fr"); 
     
     
    // pour chaque element de exemple
    foreach ($exemple as $cle => $url) {
     
       // pour chaque valeurs interdite
       foreach ($interdits as $pattern) {
          // si trouve pattern dans url
          if(ereg($pattern,$url)) unset($exemple[$cle]);
       }
     
    }
     
    // on affiche le tableau modifie
    foreach ($exemple as $url) {
    echo $url."<br/>";
    }
     
    ?>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 186
    Points
    186
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $serveur = ereg_replace("(http://[^/]*/)(.*)", "\\1", $url);
    source = http://www.phpinfo.net/regex/index.html

  6. #6
    Membre régulier
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Points : 102
    Points
    102
    Par défaut
    Re,

    Merci pour vos propositions mais ça ne joue pas...

    POur SKA_ROOT, votre code m'affiche

    ht*p://www.montout.wanadoo.fr
    ht*p://www.montout.aol.com
    ht*p://www.montout.hosting.fr
    ht*p://www.montout.m6.fr
    ht*p://www.montout.carrefourinternet.com.fr

    Et pour VELL, votre code m'affiche ceci
    h*tp://www.montout.carrefourinternet.com.fr

    D'avance merci pour d'autres soluces ou d'autres approches...

    EDIT: OUlà désolé le code de SKA_ROOT va très bien !!!!! c'est moi qui lis entre les lignes.... DESOLE et un grand MERCI

    Yule

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

Discussions similaires

  1. [RegEx] parser une url recupérer nom de domaine
    Par angelzeke dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2009, 08h31
  2. Parser une url dans un string au format texte
    Par andromeda dans le forum C#
    Réponses: 2
    Dernier message: 02/02/2009, 04h16
  3. Rome RSS: j'arrive pas à parser une url xml
    Par amine84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/12/2007, 13h27
  4. Réponses: 1
    Dernier message: 11/03/2006, 21h19
  5. Parser une URL
    Par pekka77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2005, 12h34

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