Probleme RegEx
| Auteurs | Messages |
|---|---|
| Page : 1 | |
| # Posté le 12/05/2009 à 14h08 | |
Rang: membre |
Salut, j'ai un problème avec ma regex que j'utilise afin de trouver un lien hypertexte dans une page Web (du style <a href="index.php" ...). Alors voila le code: Code: $nb_adress=preg_match_all('/^(<a.+href=")(.[^" ])+(" )$/',$datas,$array_adress_found,PREG_SET_ORDER); Et bien sur $nb_adress me renvoie toujours zéro résultat. En fait, voila comment je procède je cherche en début (<a...href="), après je cherche n'importe quel caractère sauf "+espace puis a la fin "+espace. Mais ça marche pas. Je suis pas très fort en regex alors si quelqu'un peut me dire où est mon erreur .. Tchao merci |
| # Posté le 12/05/2009 à 16h26 | |
Rang: membre |
Bon j'ai un peu avancé, à savoir j'ai changé la regex: Code: $nb_adress=preg_match_all('/<a.+href=".[^" ]+" /',$datas,$array_adress_found,PREG_SET_ORDER); Mais maintenant j'ai un autre problème, il me trouve qu'une seule adresse même quand il y en a une moultitude! |
| # Posté le 12/05/2009 à 17h07 | |
Rang: administrateur |
Bonjour. Bien joué pour le regex. Hum, s'il te trouve une seule adresse, s'agit-il de la première adresse ou de la dernière? Pour prendre toutes les adresses, il faut que $nb_adress soit un tableau à l'intérieur d'une boucle. Peut-tu fournir le reste du code? Soit dit en passant je rajouterais un "U" à la fin de ton regex actuel, soit: Code: /<a.+href=".[^" ]+" /U Le U permet d'être peu gourmand. C'est utile lorsqu'il y a deux liens à la suite pour que le regex attrape seulement la première partie. Ma page préférée? Le dossier référencement qui présente une multitude d'informations utiles.
Sinon hors internet je suis développeur web PHP. |
| # Posté le 12/05/2009 à 17h13 | |
Rang: membre |
En fait, j'ai trouvé la regex (on m'en à soufflé la plus grosse partie) mais bon faut faire profiter alors voila: Code: $nb_adress=preg_match_all('/<a href="(.+)"/isU',$datas,$array_adress_found); Quant à $nb_adress, ça fourni le nombre de résultat. Le résultat se retrouve dans $array_adress_found qui est un tableau de tableau. Les liens extraient (sous la forme (<a href="index.php") se trouvent eux dans le tableaux $array_adress_found[0] ($array_adress_found[0][0] $array_adress_found[0][1] .. $array_adress_found[0][n] Voila! |
| # Posté le 12/05/2009 à 17h15 | |
Rang: administrateur |
Bien joué. Et merci de faire profiter. ![]() Ma page préférée? Le dossier référencement qui présente une multitude d'informations utiles.
Sinon hors internet je suis développeur web PHP. |
| Page : 1 | |

