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 :

Verification de plusieurs liens


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut Verification de plusieurs liens
    Bonjour,
    J'ai trouvé un script qui permet de vérifier si un lien est présent sur un site Web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
     
    $sURL = 'L\'URL du site à vérifier.'; // URL du site à modifier
    $sPattern = 'L\'URL du lien à chercher'; // URL à rechercher.
     
    if (($sContent = file_get_contents($sURL)) !== FALSE) {
    preg_match_all('`href=["\']?'.$sPattern.'["\']?`i', $sContent, $aMatches);
    echo 'Le lien "',$sPattern,'" apparaît ',count($aMatches[0]),' fois sur la page "',$sURL,'".';
    }
    else echo 'Impossible d'accèder au site "',$sURL,'".';
    
    ?>
    Cela fonctionne parfaitement. Mais je cherche à améliorer le script pour qu'il puisse faire une chose supplémentaire. J'ai plusieurs liens à vérifier sur plusieurs sites Web ( par exemple 10 liens sur 10 sites Web)
    Cela vous semble t'il possible à réaliser et surtout comment dois je m'y prendre.
    Merci beaucoup de vos futurs renseignements :-)

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu mets tes liens dans un tableau PHP et tu fais un boucle.

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Bonjour

    si tu as besoin de quelque chose simple et performant, utilise DOMDocument http://php.net/manual/en/book.dom.php

    si tu as besoin de quelque chose compliqué, conserve tes expressions régulières toutes faites et fais 100 tests différents. autre chose tu peux améliorer le truc en ne comptant pas le nombre de ligne dans $aMatches mais simplement en récupérant la valeur de retour de preg_match_all

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Grand merci pour vos réponses.
    Je vais essayer avec un tableau car les DOM c'est encore hard pour moi.
    Je créé donc une variable qui comprend mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sURL = array('site1','site2','site3','site4'); 
    $sPattern = array('siteA','siteB','siteC','siteD');
    J'espère que jusque la je ne me suis pas planté.
    Mais ensuite comment créer cette fameuse boucle ?

    Merci d'avance de vos réponses !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Je reviens après quelques tests pour une boucle, le code serait bien cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ( $eURL as $var )
    {
    // instructions
    }

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    ou tu t'embêtes pas et t'utilises ça : http://validator.w3.org/checklink/

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Merci mais ce site ne fait pas la meme chose.
    Le but est de vérifier si un lien est en place sur un site ( quand on fait un échange de lien avec un autre site, j'essaye de faire ce script pour vérifier si lien est toujours en place, comme j'ai plusieurs sites web, la tache manuellement est fastidieuse )
    APrès d'autres tests j'y arrive presques.
    Imaginons le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    $sURL = array('site1','site2','site3','site4'); 
    $sPattern = 'sitefixe'; // URL à rechercher.
     
    if (($sContent = file_get_contents($sURL)) !== FALSE) {
    preg_match_all('`href=["\']?'.$sPattern.'["\']?`i', $sContent, $aMatches);
    echo 'Le lien "',$sPattern,'" apparaît ',count($aMatches[0]),' fois sur la page "',$sURL,'".';
    }
    else echo 'Impossible accèder au site "',$sURL,'".';
     
    ?>
    La j'aurais qu'un seul tableau et faire une boucle dessusn mais je bloque toujours sur la boucle..

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    si tu veux recupere tout les lien c'est avec DOMDocument et récupère tout les href et src, ensuite c'est un get_headers qu'il faut faire

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Merci de votre réponse.
    Mais je crois que je suis largué avec les DOM, je pensais que c'était plus simple, je crois que je suis pas au niveau pour cela.
    Mais merci quand meme

Discussions similaires

  1. Générer plusieurs liens avec 1 input et 1 bouton
    Par caillon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/11/2006, 14h46
  2. Plusieurs liens sur une image?
    Par spirit69 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 03/08/2006, 09h55
  3. plusieur lien de couleur défférent dans la même page
    Par karimphp dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/07/2006, 14h34
  4. plusieurs liens en un
    Par gouape dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/06/2006, 15h06
  5. diviser une image en plusieurs liens
    Par mat-tech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/04/2006, 16h10

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