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 :

comment on peut verifier que la valeur d'une variable ne soit que des chiffres ? [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de tyarak
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Points : 60
    Points
    60
    Par défaut comment on peut verifier que la valeur d'une variable ne soit que des chiffres ?
    Bonjour,

    je voudrais savoir comment on peut verifier que la valeur d'une variable ne soit que des chiffres sans . ni d'opérateur seulement des chiffres

    merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Points : 201
    Points
    201
    Par défaut
    Pourquoi 2 posts?

    http://developpez.net/forums/showthread.php?t=226633

    En PHP, il faut faire un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(!ereg('[0-9]', $str))
     echo 'ok';
    else
     echo 'Chiffres dans la variable...';

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Beaucoup plus simple et plus optimisé : is_int() ou is_numeric().

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as deux solutions :
    1. Expressions Régulières : Comment vérifier un nombre à l'aide d'expressions régulières ?
    2. Les fonctions nombres : Comment vérifier le format d'un nombre ?
    Mais privilégies les Expressions Réguilères car elles te permettront d'avoir un format de vérification bien précis

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Je persiste, le plus optimisé à ma connaissance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // entier positif ou négatif
    if (is_int($var)) ...
     
    // entier positif
    if (is_int($var) and $var>=0) ...
    Les expressions régulières sont en effet beaucoup plus fines, mais j'ai toujours lu qu'il vallait mieux utiliser les fonctions php quand elles existent.

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je suis tout à fait d'accord avec toi, j'avais survolé la partie qui parlait du .
    Donc en effet la solution 2 de mon post est plus appropriée ainsi que celle de vg33 vu que c'est un int qui est demandé

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    A mes tous débuts, je faisais comme ça :
    Paraîtrait en plus que c'est plus rapide qu'une fonction is_int()...

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Et que donne $var*1 si $var n'est pas numérique ?

  9. #9
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par vg33
    Et que donne $var*1 si $var n'est pas numérique ?
    Bonne question ! Je suppose que cela retourne null, à vérifier...

  10. #10
    Invité
    Invité(e)
    Par défaut
    La soluce de vg33 me paraît la plus optimale.

    Citation Envoyé par vg33
    // entier positif
    if (is_int($var) and $var>=0) ...
    Faut juste prendre en considération (comme dit dans le manuel PHP) que les saisies utilisateur (transmises par $_POST, $_GET...) sont toujours considérées comme des chaînes de caractères.

    Du coup l'expression ultime ressemblerait à ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // entier naturel
    if (is_numeric($var) && is_int($var) && $var >= 0)
    Bye

  11. #11
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par vg33
    Et que donne $var*1 si $var n'est pas numérique ?
    Null

    Cela fonctionne avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($var.' '==($var*1).' ') 
      echo 'Valeur numérique.<br/>';else
      echo 'Valeur non numérique.<br/>';
    Mais bon...
    En fait, j'ai confondu, c'est avec Javascript que j'utilisais cette méthode car plus rapide.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/03/2014, 21h54
  2. Réponses: 3
    Dernier message: 04/03/2011, 14h45
  3. Réponses: 2
    Dernier message: 12/04/2010, 10h26
  4. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  5. Autant de formulaires que la valeur d'une variable
    Par suolan dans le forum Langage
    Réponses: 5
    Dernier message: 12/05/2006, 14h16

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