Extraire des données avec une regex

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par rudddy, 27 Octobre 2010.

  1. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    Bonjour,
    je voudrais faire une recherche d'une chaine de caractères dans une url en utilisant les expressions régulières.
    Le souci est que je ne comprends rien aux expressions régulières.

    Ce dont j'ai besoin:
    J'ai plusieurs url du type:
    xxx.php?id=1111&param=2222
    xxx.php?id=3333&param=4444
    xxx.php?id=5555&param=6666

    Ce que je voudrais est faire une boucle parcourant toutes ces chaines et a chaque fois faire un echo de ce qui se trouve dans les variables "id" et "param"

    Avez vous une idée ?
    Merci

    Yves
     
  2. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 197
    J'aime reçus:
    0
    input : (.*)?php?id=([0-9]+)&param=([0-9]+)$
    output : id = $1 et param = $2
     
  3. cthierry
    cthierry WRInaute passionné
    Inscrit:
    15 Janvier 2005
    Messages:
    2 354
    J'aime reçus:
    86
    avec un get non?
    $_GET['id'];
    $_GET['param'];

    et un echo de ce que cela récupère.
     
  4. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    ça a l'air cool les mecs je teste de suite

    (pas en $_Get car c'est via un CURL)
     
  5. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    Code:
    $preg = preg_match('(.*)?php?id=([0-9]+)&param=([0-9]+)$',$chaine,$matches);
    me donne

    Warning: preg_match() [function.preg-match]: Unknown modifier '?' in C:\wamp\www...
     
  6. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 197
    J'aime reçus:
    0
    Par contre là c'est à toi de lire la doc, c'est écrit noir sur blanc comment faire, il y a même des exemples.
    Et toi tu veux un preg_replace au fait.
     
  7. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 022
    J'aime reçus:
    0
    Code:
    $preg = preg_match('(.*)\?php?id=([0-9]+)&param=([0-9]+)$',$chaine,$matches);
    
    
     
  8. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    j'ai essayé d'echapper les ?(tous) et que maintenant j'ai le message d'erreur sur l "\"
     
  9. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 022
    J'aime reçus:
    0
    merde c'etait l'autre
    Code:
    $preg = preg_match('(.*)?php\?id=([0-9]+)&param=([0-9]+)$',$chaine,$matches);
    
     
  10. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 197
    J'aime reçus:
    0
  11. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    a quoi sert le ? avant php ?
    Code:
    $chaine="xxx.php?id=1111&param=2222";
    $preg = preg_match('(.*)?php\?id=([0-9]+)$',$chaine,$matches);
    echo $matches[0];
    
    Warning: preg_match() [function.preg-match]: Unknown modifier '?' in C:\wamp\www\............
     
  12. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 197
    J'aime reçus:
    0
    A rien c'est une faute de frappe :mrgreen:
     
  13. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    Donc ca donne :

    Code:
    $preg = preg_match('(.*)\.php\?id=([0-9]+)&param=([0-9]+)$',$chaine,$matches);
    ??
     
  14. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    mais ça donne
    Warning: preg_match() [function.preg-match]: Unknown modifier '\' in C:\wamp\www
     
  15. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 022
    J'aime reçus:
    0
    Code:
    $preg = preg_match('(.*).php\?id=([0-9]+)&param=([0-9]+)$',$chaine,$matches);
    devrait avoir une fonction PHP sur WRI ca nous permettrait de tester online ^^
     
  16. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    Unknown modifier '.'
     
  17. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 022
    J'aime reçus:
    0
    et
    Code:
    $preg ='';
    :mrgreen:
     
  18. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 024
    J'aime reçus:
    1
    Code:
    $preg = preg_match('|ton regex|',$chaine,$matches);
     
  19. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Oui, comme déjà indiqué, une regex dans les fonctions preg_* doit être encadrée par un délimiteur. Là, il considère que le premier ( est le délimiteur, donc il s'arrête au premier ), et il essaie d'interpréter le reste comme des flags, et ça ne lui plait pas.

    De surcroît, comme le début n'a aucune importance, pas besoin de () du tout, et même du .*

    preg_match_all('/.php\?id=(\d+)&param=(\d+)$/',$chaine,$matches);

    Alternativement, en prenant les URLs une par une, parse_url et/ou parse_str sont probablement un meilleur choix...

    Jacques.
     
Chargement...
Similar Threads - Extraire données regex Forum Date
Extraire une partie des données Google Analytics 8 Octobre 2012
Extraire des données d'un fichier .csv pour en faire un pdf Administration d'un site Web 12 Mai 2011
extraire certaines données contenu dans une variable php Développement d'un site Web ou d'une appli mobile 16 Novembre 2010
Extraire données d'un fichier txt Développement d'un site Web ou d'une appli mobile 24 Décembre 2008
Problème pour extraire données d'un dvd défectueux Le café de WebRankInfo 29 Juillet 2007
Extraire chaine d'un Json Développement d'un site Web ou d'une appli mobile 18 Octobre 2018
Linkedin : impossible d'extraire un aperçu --- Help !!! Autres réseaux sociaux 2 Février 2017
Extraire une partie d'un site vers un nouveau Débuter en référencement 17 Juin 2016
Extraire les sessions pour chaque mois par source Google Analytics 30 Septembre 2015
url rewriting formule pour extraire "mots+clefs" Débuter en référencement 4 Août 2014
Extraire un fichier robots.txt et comparer le résultat Développement d'un site Web ou d'une appli mobile 12 Juillet 2014
[résolu] Extraire les statistiques d'une partie du site avec Google Analytics Google Analytics 11 Février 2013
Expression régulière : extraire une chaine variable d'une chaine Développement d'un site Web ou d'une appli mobile 4 Septembre 2012
Extraire le contenu et le référencement d'un site Référencement international (langues, pays) 27 Août 2012
PHP extraire des dates à partir des numéros de jours Développement d'un site Web ou d'une appli mobile 28 Mai 2012
explication pour extraire les Internautes qui proviennent de google images ? Débuter en référencement 16 Avril 2011
Advanced web ranking impossible extraire les mots clés Débuter en référencement 4 Avril 2011
Extraire les urls d'une recherche Référencement Google 24 Octobre 2010
Extraire les mots clés pertinents d'une requête Débuter en référencement 26 Mai 2010
Extraire une chaine de caractères Développement d'un site Web ou d'une appli mobile 19 Avril 2010