Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2007, 11h11   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
Par défaut Expression régulière sur lien hypertexte

Bonjour mon probleme est assez simple mais je ne trouve pas la solution (même en ayant chercher sur ce forum et d'autres).

Je veux récupérer dans un tableau tous les liens hypertextes d'un email que j'envoie.

Je veux utiliser les expressions régulière mais je n'y arrive pas.

Je veux reconnaitre toutes les expressions commençant par

href=' et finissant par '

Merci de me proposer une solution utilisant les expressions regulieres.

Rémi
doubiremi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 13h17   #2
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
salut
ceci devrait fonctionner. J'ai testé en ligne (http://www.dotnetcoders.com/web/Lear...gexTester.aspx)

pour décomposer un peu:
indique le début de ce que je cherche
signifie que j'exclue le partern de début ma sélection
indique la fin de ce que je cherche
signifie que j'exclue le partern de fin de ma sélection
tous les caractères entre ces deux patterns

Donc en testant avec
Code :
<a href="dsqfsdfqsdsq" > </a>
j'ai le résultat suivant
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 14h14   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
Par défaut Php

Effectivement ça fonctionne sur le site dotnetcoders mais pas dans mon programme.
J'utilise PHP et dans mon lien href il y a des argument en GET, donc dans la String il y a un "?" qui pourrait peut etre poser probleme.

Sinon quelle fonction utilisé pour récupérer toutes les occurences de lien hypertext?

J'ai essayé avec

$pattern = "(?<=href=\').*(?=')";
$result = preg_match($pattern, $argVariableContenu, $test);
print_r($test);

mais le tableau est null.

J'ai essayer avec preg_split et preg_grep et le resultat est le même.

Une ptite idée?

Merci.
doubiremi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 15h22   #4
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
salut,
Est ce que tu as un message d'erreur?
qui y a t-il dans $argVariableContenu?
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 10h45   #5
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
Par défaut vide

En fait $argVariableContenu contient le contenu de ma Newsletter, ce que je veux faire c'est ajouter à chaque lien de la newsetter un argument get pour faire du tracking sur email.

Je n'ai aucun message d'erreur...
doubiremi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 14h29   #6
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
bon ce coup-ci j'ai testé pour de vrai
et ça a l'air de fonctionner.

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
$line = '
  <a href="/downloads.php">downloads</a> |
  <a href="/docs.php">documentation</a> |
  <a href="/FAQ.php">faq</a> |
  <a href="/support.php">getting help</a> |
  <a href="/mailing-lists.php">mailing lists</a> |
  <a href="http://bugs.php.net/">reporting bugs</a> |
  <a href="/sites.php">php.net sites</a> |
  <a href="/links.php">links</a> |
  <a href="/conferences/">conferences</a> |
  <a href="/my.php">my php.net</a>';
if(preg_match_all("/(?<=href=\")[^\"]+/",$line,$parts))
	print_r($parts);
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 14h48   #7
Invité de passage
 
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 1
Points : 1
Par défaut Good, good, good

Super ça marche exactement comme je veux.
Un grand merci à toi Julien
doubiremi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h09.


 
 
 
 
Partenaires

Hébergement Web