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 :

Aide débuggage preg_match_all [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut Aide débuggage preg_match_all
    Bonsoir à tous

    J'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('/^.*?<a .*?href="(.*?)".*?>.*?(<img .*?\/>).*?(.*?)<\/a>.*?$/ms', $paymentHook, $matches, PREG_SET_ORDER)
    qui me permet entre autre de récupérer la valeur href d'un lien, jusque la tout va bien cela fonctionne.
    Mais si le lien href contient une url encodée comme ci-dessous cela me renvoit une valeur de href vide ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://www.site.com/page.php?!c2lyZXQ9NDQ5MDE5NDYyMDAwMzQlMkQwMiZyZWZlcmVuY2U9c3BwMjAxMDExMjAyMzAyNTgmbGFuZ3VlPUZSJmRldmlzZT05NzgmbW9udGFudD0xOSUyRTk5JnRheGU9MCUyRTAwJmhtYWM9MzFERTU1MjU3RDYyQzg2MDAyQUYzQ0Q3ODYwOUJDODNFMDIxQTZFMCZ1cmxyZXRvdXI9aHR0cCUzQSUyRiUyRnd3dyUyRWxhYmVsJTJEY3JhdmF0ZSUyRWNvbSUyRm9yZGVyJTJEY29uZmlybWF0aW9uJTJFcGhwJTNGa2V5JTdEZGFlYjliNmE1NTQwNmExOTUzNzlhYjdlNmIxZjFhZjcmZW1haWw9aGVyaXNzb24lMkV0aG9tYXMlNDBnbWFpbCUyRWNvbSZhcmcxPTU2MTkmbW95ZW49Q0JTJm1vZGFsaXRlPTF4Jm9rVVJMPWh0dHAlM0ElMkYlMkZ3d3clMkVsYWJlbCUyRGNyYXZhdGUlMkVjb20lMkZvcmRlciUyRGNvbmZpcm1hdGlvbiUyRXBocCUzRmtleSU3RGRhZWI5YjZhNTU0MDZhMTk1Mzc5YWI3ZTZiMWYxYWY3JmJhZFVSTD1odHRwJTNBJTJGJTJGd3d3JTJFbGFiZWwlMkRjcmF2YXRlJTJFY29tJTJG==
    Merci beaucoup de votre aide

  2. #2
    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
    déjà, on va simplifier: supprime tes ? apres les étoiles c'est inutile, une * ce n'est pas un +.
    change de séparateur, utilise .... le #, ça évitera d'avoir des pb échappement d'échappement.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '#<a.*href="([^"]*)".*>.*</a>#i'
    ceci devrai pouvoir suffire pour un href sur un lien dans un document correctement encodé. il y aura des situations ou cette règle sera prise en défaut mais bon...
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  4. #4
    Membre régulier Avatar de tom06440
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Points : 102
    Points
    102
    Par défaut
    merci pour cette réponse si rapide (et si tard en plus )

    A priori elle fonctionne parfaitement pour mon soucis, je verrais bien à l'usage si je rencontre des problèmes autres, mais vu que j'utiliserais le même encodage d'url ça devrait le faire !

    Encore un grand merci pour ton aide !

  5. #5
    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
    en fait je pensais surtout à des conditions ou tu as des liens imbriqués. Vu le nombre de points, l'expression régulière a le droit d'en oublier, sauf que son comportement habituel est d'avancer dans le motif aussitôt qu'elle le peut, c'est pourquoi un preg_match suffit à mon avis.

    ensuite tu peux faire de la validation d'url via filter_var ou autrement pour distinguer les mailto: des https?:

    résolu?
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Aide preg_match_all regex
    Par Six3l/\D dans le forum Langage
    Réponses: 2
    Dernier message: 10/01/2011, 17h26
  2. Aide preg_match_all regex
    Par Six3l/\D dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2011, 17h23
  3. [RegEx] [PHP] preg_match_all aide
    Par NeoKript dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2010, 08h32
  4. [RegEx] preg_match_all aide expression
    Par Oprichnik dans le forum Langage
    Réponses: 2
    Dernier message: 29/07/2007, 11h05
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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