preg_match d'un lien href

Discussion dans 'Débuter en référencement' créé par Bfleurs, 16 Novembre 2010.

  1. Bfleurs
    Bfleurs Nouveau WRInaute
    Inscrit:
    14 Octobre 2010
    Messages:
    10
    J'aime reçus:
    0
    Bonsoir,

    je cherche à vérifier un lien et extraire l'ancre
    sur une page où il y a plusieurs liens avec un contenu variable

    Code:
    <a href="http://www.site1.com" title="site1" target="_blank">ancre 1 </a>
    <a href="http://www.site2.com"  target="_blank">ancre 2 </a>
    <a href="http://www.site3.com" title="site3">ancre 3 </a>
    <a href="http://www.site4.com" rel="nofollow" >ancre 4 </a>
    
    j'utilise le code suivant
    Code:
     if (preg_match("#<a(.*)href=[\"']".$match_pattern."(\/?)[\"'](.*)>(.*)<\/a>#", $page, $match)) 
    	{
    	
    	if($match[4] != "")
    	  $ancre = $match[4];
        print_r($match);
        if (!preg_match("/rel=[\"']?nofollow[\"']?/", $match[0]))
          {
    	  $follow_link = "1";
    	  }
    	}
    
    quand il n'y a qu'un lien cela fonctionne mais avec plusieurs le print_r et ancre ne me retourne pas les bonnes informatiosn

    merci de vos conseils
     
  2. forummp3
    forummp3 WRInaute passionné
    Inscrit:
    8 Février 2004
    Messages:
    1 519
    J'aime reçus:
    0
  3. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 029
    J'aime reçus:
    291
    Et si le contenu est comme tu l'indiques, un lien par ligne, il y a plus simple:
    Code:
    <?php 
    $content = <<<EOT
    <a href="http://www.site1.com" title="site1" target="_blank">ancre 1 </a>
    <a href="http://www.site2.com"  target="_blank">ancre 2 </a>
    <a href="http://www.site3.com" title="site3">ancre 3 </a>
    <a href="http://www.site4.com" rel="nofollow" >ancre 4 </a>
    EOT;
    
    $lines = explode("\n", $content);
    $anchors = array();
    foreach($lines as $l){
    $anchors[] = trim(strip_tags($l));
    }
    print_r($anchors);
    ?>
    
     
  4. Bfleurs
    Bfleurs Nouveau WRInaute
    Inscrit:
    14 Octobre 2010
    Messages:
    10
    J'aime reçus:
    0
    Bonsoir j'ai utilisé le preg_match_all aussi mais dans une page quelconque, j'ai le problème quand il y a plusieurs <a href=""> qui sont collés donc sur la même ligne.


    mon script fonctionne pour récupérer tous les liens de la page quand ils sont sur une ligne par contre

    j'obtiens dans le print_r du tableau plusieurs lien sur le meme enreg
     
  5. Matthieu_s
    Matthieu_s WRInaute discret
    Inscrit:
    3 Août 2006
    Messages:
    84
    J'aime reçus:
    0
    Bonjour,

    Fait gaffe à tes (.*), comme cela veut dire "n'importe quel caractère répété 0 ou plusieurs fois", cela peut tout a faire être un autre href, un <a>, etc. En gros, il peut te prendre le début de premier lien et la fin du 2e et en trouver un seul, la condition sera vraie. Utilise plutot ([^>]*) par exemple, pour dire que dans ta balise, tu n'acceptes pas de fermeture de balise.
     
  6. forummp3
    forummp3 WRInaute passionné
    Inscrit:
    8 Février 2004
    Messages:
    1 519
    J'aime reçus:
    0
    oui, faut mettre un [^<a] au bon endroit dans ta regex.
     
  7. Bfleurs
    Bfleurs Nouveau WRInaute
    Inscrit:
    14 Octobre 2010
    Messages:
    10
    J'aime reçus:
    0
    Bonjour et merci, je me doutais qu il y avait un truc comme cela pour l expression. A chaque fois je me fais avoir . Le point est résolu. Il faut maintenant que je traite toutes les combinaisons et la casse.

    Merci
     
  8. forummp3
    forummp3 WRInaute passionné
    Inscrit:
    8 Février 2004
    Messages:
    1 519
    J'aime reçus:
    0
    pour la case, met un i a la fin de ton expression reguliere (aprés ton dernier #)
     
  9. Bfleurs
    Bfleurs Nouveau WRInaute
    Inscrit:
    14 Octobre 2010
    Messages:
    10
    J'aime reçus:
    0
  10. forummp3
    forummp3 WRInaute passionné
    Inscrit:
    8 Février 2004
    Messages:
    1 519
    J'aime reçus:
    0
    ben tu met "si" alors a la place de "i".
     
Chargement...
Similar Threads - preg_match lien href Forum Date
Problème de preg_match(). Développement d'un site Web ou d'une appli mobile 15 Mai 2020
Preg_match et bobo à la tête :) Développement d'un site Web ou d'une appli mobile 28 Janvier 2013
preg_match toute simple mais blocage... Référencement Google 16 Décembre 2011
preg_match_all et cellule d'un tableau Développement d'un site Web ou d'une appli mobile 28 Mai 2010
Utilisation preg_match URL Rewriting et .htaccess 30 Mars 2010
Lien externe sponsorisé menu/page accueil Wordpress Débuter en référencement Aujourd'hui à 09:51
Lien href sans préfixe http(s) et SEO Netlinking, backlinks, liens et redirections 30 Juillet 2020
Echanges de liens triangulaires: Vraiment dangereux? Débuter en référencement 22 Juillet 2020
la loi brésilienne LGPD Droit du web (juridique, fiscalité...) 18 Juillet 2020
Liens d'une page désindéxée Débuter en référencement 16 Juillet 2020
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice