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 :

Format d'un matricule


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut Format d'un matricule
    Bonjour,
    j'ai une question :
    je cherche comment tester le format d'un matricule qui sous la forme
    année+0000+numéro séquenciel

    année: entre 2000 et 2009
    numéro séquentielle sur 4position entre 0000 et 9999

    j'ai le code suivant mais ça marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    function validation4($str4) //nouveau systeme
    {
      preg_match('#^([0-9]{4})(0000) ([0-9]{4})$#', $str4, $tab4);
      return (count($tab4)!=0 && $tab4[1]>=2000 && $tab4[1]<=2009);
    }
    ?>
    svp a ce qu'il qlq peut me répondre.
    merci d'avance.

  2. #2
    Membre actif Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Essaye de debuger avant de poser ce genre de question, un print_r tu ton résultat t'aurais surement apporté la solution.

    Essaye comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    function validation4($str4) //nouveau systeme
    {
      preg_match('#^([0-9]{4})(0000) ([0-9]{4})$#', $str4, $tab4);
      return (count($tab4)!=0 && $tab4[0]>=2000 && $tab4[0]<=2009);
    }
    ?>
    Bonne journée !

  3. #3
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut
    Bonjour,
    désolé mais ça marche pas.
    merci d'avance.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    "ça marche pas." ne nous aide pas à t'aider
    As-tu un msg d'erreur ? Un comportement non désiré ?
    Donne un script court et fonctionnel avec le résultat obtenu et le résultat attendu.

  5. #5
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut
    Bonjour,
    je cherche des matricules sous forme 200400001138
    2004: années sur 4 possitions et je souhaite que doit etre entre 2000 et 2009.
    la deuxieme 0000 est fixe toujour 0000.
    1138 : numéro séquencielle sur 4 possition entre 0000 et 9999.

    j'urilise la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    function validation4($str4) //nouveau systeme
    {
      preg_match('#^([0-9]{4})(0000) ([0-9]{4})$#', $str4, $tab4);
      return (count($tab4)!=0 && $tab4[1]>=2000 && $tab4[1]<=2009);
    }
    ?>
    $exemple="200400001138";
    if (validation($exemple))
    {echo ("oui");}
    else
    {echo("non");}
    mais ça marche, elle affiche toujour non.

    merci de me répondre.
    merci d'avance.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Merci pour ton message clair
    C'est à cause de l'espace entre (0000) et ([0-9]{4}), supprime-le.

    D'autre part tu peux simplifier ta fonction en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function validation4($str4)
    {
        return (bool)preg_match('#^200[0-9]0000[0-9]{4}$#', $str4);
    }

  7. #7
    Membre du Club Avatar de hadjiphp
    Inscrit en
    Décembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 155
    Points : 43
    Points
    43
    Par défaut
    Bonjour,
    merci pour votre réponse ça marche c'est a cause de l'espace.

    mais maintenant j'ai une autre question trés importante pour résoudre mon travail comment je peut récupérer le premiér champ de ce matricule c-à-d comme exemple matricule="200400001138" je souhaite de récupérer le premier champ "2004".

    merci de me répondre.
    merci d'avance.

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Tu pourras récupérer les 4 premiers caractères avec substr( )
    Tu trouveras des exemples d'utilisation dans la doc : http://fr.php.net/substr

Discussions similaires

  1. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00
  2. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34
  3. Format d'un exe pour DOS et pour Windows
    Par Alfhiger dans le forum Assembleur
    Réponses: 4
    Dernier message: 12/06/2002, 11h57
  4. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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