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 :

controle lettres nombres en PHP


Sujet :

Langage PHP

  1. #1
    FoxLeRenard
    Invité(e)
    Par défaut controle lettres nombres en PHP
    C'est surement dans la FAQ
    Mais je n'ais pas su trouver ...

    Pouvez vous me rappeler la formule magique qui permet de contrôler en PHP (pas en javascript) qu'un champ texte ne contient que des lettres et chiffres ?

    merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    salut

    je pense que le mieux est d'utiliser une expression régulière.

    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function est_alphanum($chaine)
    {
    	if(ereg("[0-9A-Za-zéèçàùâêûîôäëÿüïö]*",$chaine)) return true;
    	else                                             return false;
    } /* est_alphanum() */
    je n'ai pas testé la fonction mais ça ne doit pas être loin de ça

    gui

  3. #3
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, j'aurais utilisé plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#^[[:alnum:]]+$#', $txt)
    si tu ne précises pas ^ et $, il me semble qu'il va y avoir avoir une recherche de motif dans la chaîne et non la chaîne complète

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Nesmontou
    Salut, j'aurais utilisé plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('#^[[:alnum:]]+$#', $txt)
    si tu ne précises pas ^ et $, il me semble qu'il va y avoir avoir une recherche de motif dans la chaîne et non la chaîne complète
    Ah OUI ça marche 100% j'ais testé dans tout les sens ...
    mille mercis à toi et à dauggui

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    @dauggui : Ta solution est (presque) correcte mais pas optimale. En effet, les fonctions preg_ (PCRE) sont plus efficaces que les fonctions ereg_ (POSIX). De plus, ereg(), au même titre que preg_match(), renvoie une valeur FALSE ou zéro (donc identifiables par l'opérateur "!"), ce qui rend inutile l'imbrication dans une fonction supplémentaire.

    @Nesmontou : En effet, il faut ancrer la chaîne avec "^" et "$", sans quoi l'expression nous dirait simplement s'il y a des chiffres et lettres au lieu de nous dire s'il y a uniquement des chiffres et lettres.

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour Kirkis
    Comme je l'ais dit ça me résoud tout à fait mon probléme, mais j'avous avoir fait un copier/colé pour mes test !!

    Ors ton message me fait découvrir cette subtilitée de l'ancrage ...
    peux tu m'en dire plus ou m'orienter sur un lien traitant de cet aspect ?

    En tout cas merci de tes précisions

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oh, c'est simple.

    L'ancrage au début de la chaîne ("^" juste après le premier délimiteur, ici "#") permet de dire à PHP que l'expression devra trouver son résultat au début de la chaïne ou ne pas le trouver du tout.
    Idem avec l'ancrage de fin, à savoir "$" juste avant le second délimiteur.

    Il me semble qu'un très bon cours sur les regex est disponible sur php-france.

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Kirkis
    Oh, c'est simple.

    L'ancrage au début de la chaîne ("^" juste après le premier délimiteur, ici "#") permet de dire à PHP que l'expression devra trouver son résultat au début de la chaïne ou ne pas le trouver du tout.
    Idem avec l'ancrage de fin, à savoir "$" juste avant le second délimiteur.

    Il me semble qu'un très bon cours sur les regex est disponible sur php-france.
    Mille merci pour cette réponse , je file voir ça

Discussions similaires

  1. Comment formater un nombre avec PHP
    Par loan33 dans le forum Langage
    Réponses: 5
    Dernier message: 27/10/2006, 08h41
  2. Controler le nombre d'options choisies d'un select
    Par gofono_bass dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/03/2006, 06h28
  3. [débutant] type lettre+nombre ??
    Par skual dans le forum Débuter
    Réponses: 5
    Dernier message: 10/01/2006, 09h06
  4. controler le nombre d'enregistrement
    Par jonny dans le forum MFC
    Réponses: 7
    Dernier message: 25/05/2005, 14h11
  5. Controler un nombre de processus identiques.
    Par ditfau6 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/05/2004, 16h21

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