Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2006, 09h11   #1
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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
  Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 10h21   #2
Nouveau Membre du Club
 
Inscription : 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 : 27
Points : 27
salut

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

genre :
Code :
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
dauggui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 10h42   #3
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 494
Points : 2 494
Salut, j'aurais utilisé plutôt
Code :
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
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 12h15   #4
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Citation:
Envoyé par Nesmontou
Salut, j'aurais utilisé plutôt
Code :
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
  Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 16h01   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
@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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 16h13   #6
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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
  Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 16h49   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2006, 19h26   #8
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Mettre Résolu
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h46.


 
 
 
 
Partenaires

Hébergement Web