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 :

Fonctionnement de la commande 'preg_match' [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut Fonctionnement de la commande 'preg_match'
    Bonjour à tous,

    Je souhaiterai comprendre le fonctionnement de la commande "preg_match" dans cette ligne par exemple :

    if (preg_match("/([OdWo5NIbpuU4V2iJT0n]{5}) /", rawurldecode($loc=$_SERVER["QUERY_STRING"]), $matches)) {
    die();

    La partie en gras est en faîte la partie que je n'arrive pas à comprendre, j'ai beu essayé de trouver sur les forums, je ne comprends pas ce qu'on peut mettre à l'intérieur, j'ai lu sur un tutoriel qu'il s'agissait d'un masque mais je n'ai pas trouver de tuto à ce sujet.

    Quelqu'un pourrait il m'expliquer cette fonction ? et ce que je peux mettre et dois mettre comme terme dans le masque ?

    Merci d'avance pour vous réponses.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    je ne m'y connais pas trop, j'aurais tendance à dire qu'on recherche un ensemble de 5 caractères (parmis OdWo5NIbpuU4V2iJT0n) suivi d'un espace, l'ensemble des 5 caractères étant capturé. A confirmer...

    Je vois pas trop l'intérêt du truc... c'est dans quel contexte ?

  3. #3
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    oui c'est clair que l'interêt est moyen, a priori récupérer un ensemble de 5 caractères suivi d'un espace dans une url en vue de shooter la page... mouais, il me semble qu'il s'agit d'une methode anti-spam

    pour de la doc ya ce site en français, assez concis, mais suffisant pour ce que tu veux comprendre :
    http://expreg.com/

    donc les "/" sont les délimiteurs pcre, les parenthèses servent à capturer un bloc (une condition en somme), les crochets contiennent un ensemble de caractères devant être présent dans la chaine a tester, et les accolades définissent le nombre de ceux-ci.

    donc :
    trouves un de ces caractères ( OdWo5NIbpuU4V2iJT0n ) au nombre de cinq, suivi d'un espace.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Merci de confirmer ska_root, j'étais pas très sur de moi

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Merci pour vos réponses. Je commence un peu à comprendre.

    En faites, je me suis acheté pas mal de bouquin sur PHP et j'essaie d'apprendre. Je connais les "bases" mais j'ai voulu poursuivre mon apprentissage à un autre niveau.

    J'ai donc essayé de décrypter un portail php et j'ai trouvé cette ligne dans le mainfile.php du portail phpnuke et je ne comprenais pas trop à quoi servait cette ligne mais vos explications m'eclaircicent un peu.

    Par contre, qu'entendez vous par une chaine de caractère capturée ?

    Et pour "trouve ce caractère" est ce que c'est 5 caractères parmi ces choix ou est ce que ces 5 caractères doivent ce suivre (Ex : NIbpu)

    Merci pour la rapidité de réponse.

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    tu prends 5 fois un caractères parmis ceux qui sont entre les crochets. dans n'importe quel ordre.
    On capture -- à l'aide de parenthèses -- des chaines pour pouvoir faire des traitements dessus par la suite.
    Citation Envoyé par [url
    http://php.net/preg_match[/url]] Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.
    CQFD

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

Discussions similaires

  1. Fonctionnement aléatoire de commandes système dans un script
    Par Jipété dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 03/08/2016, 21h09
  2. Réponses: 8
    Dernier message: 19/06/2007, 14h45
  3. [VB6] Execution ligne de commande : fonctionnement aleatoire
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/05/2006, 15h51
  4. Réponses: 10
    Dernier message: 02/03/2006, 11h36
  5. [BCB5][FB1.5]Pourquoi cette commande ne fonctionne pas ?
    Par Sitting Bull dans le forum Débuter
    Réponses: 1
    Dernier message: 17/11/2004, 16h27

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