Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
782 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  fonction qui n'accepte que certains caracteres dans une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction qui n'accepte que certains caracteres dans une chaine

n°1452715
deltree
Posté le 05-10-2006 à 12:24:25  profilanswer
 

Bonjour à tous,
Voila tout est dans le titre:
Je cherche une fonction PHP dans ce style:
ma_fonction($chaine,"1234567890!c*-" )
Si dans la variable $chaine, on trouve autre chose que les caracteres suivants, en paramètre (1234567890!c*-) alors elle renvoie false, sinon, true.
 
Si cette fonction existe déjà, ou que quelqu'un l'à programmé pourriez vous me la donner, ou m'indiquer a peut pres de quelle maniere la programmer efficacement ?
merci

mood
Publicité
Posté le 05-10-2006 à 12:24:25  profilanswer
 

n°1452761
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-10-2006 à 13:47:02  profilanswer
 

avec un petit coup de regex(preg_match), c'est pas bien dur!!!
Mais si tu veux vraiment en faire une fonction spécifique, tu peux faire un truc dans le genre:

Code :
  1. <?php
  2. function addRegexSlashes($str){
  3.   return addcslashes($str, '[]{}/\.*?+-|$^()');
  4. }
  5. function ma_fonction($str, $chars){
  6.   return (preg_match( '/'.implode('|', array_map("addRegexSlashes", str_split($chars))).'/', $str)==0)?true:false;
  7. }
  8. if ( ma_fonction('a.bcd', '.*\12340590')){
  9.   print 'OK';
  10. } else {
  11.   print 'PAS OK';
  12. }
  13. ?>

n°1452887
deltree
Posté le 05-10-2006 à 16:35:55  profilanswer
 

hello
merci de ta réponse,
j'ai fais une recherche sur preg_match,et c'est en effet bien la fonction qui correspond a mon probleme.
le probleme c'est que je ne comprend pas vraiment la syntaxe des regex, je vais étudier ca.
ca a l'air pas mal comme systeme pour tester les chaines de caractere.

n°1452897
deltree
Posté le 05-10-2006 à 16:47:31  profilanswer
 

ca a l'air fichtrement compliqué.

n°1453029
deltree
Posté le 05-10-2006 à 19:04:57  profilanswer
 

edit:
j'ai trouvé une fonction qui fait tout ca de maniere simple:
 
strspn($chaine_a_verifier, $chaine_valide);
 
elle permet de savoir si $chaine_a_verifier contient bien les caracteres de $chaine_valide et RIEN d'autre. (si elle trouve un caractere intru, elle renvoie 0)

n°1453206
anapajari
s/travail/glanding on hfr/gs;
Posté le 06-10-2006 à 09:42:37  profilanswer
 

pas du tout hein [:mlc] [:mlc] [:mlc]
http://fr.php.net/strspn :

Citation :

Exemple 1. Exemple avec strspn()

Code :
  1. <?php
  2. echo strspn("42 est la réponse, mais quelle est la question ...", "1234567890" );
  3. ?>


va afficher 3, car la chaîne "42" est le plus long segment initial de "42 est la réponse, mais quelle est la question ...", dont tous les caractères sont contenus dans "1234567890".

n°1454717
deltree
Posté le 10-10-2006 à 10:46:53  profilanswer
 

edit.
je ne comprend pas pourquoi cette fonction renvoie 3 au lieu de 2, dans l'exemple.
 
"42" fait bien 2 caracteres de longueur ?
 
edit:
apres vérification, il y a bien une erreur dans l'exemple. elle renvoie 2.
 
edit:
en fait, il suffit de comparer le résultat de cette fonction avec la longueur de la chaine, et si c est différent, c est qu'il y a au moins 1 caractere "intrus", c est ce qui m'intéressait.


Message édité par deltree le 10-10-2006 à 11:04:17

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  fonction qui n'accepte que certains caracteres dans une chaine

 

Sujets relatifs
Fonction php --> javascriptFonction excel sous macro VBA
Scale en fonction de StageProbleme Fonction Porte avec MATLAB
Aide sur fonction DelaiFaire une seule recherche de 2 types de chaine de caractère
Fonction vs Classfonction qui renvoie le type d'une variable
caractères spéciaux en javascript 
Plus de sujets relatifs à : fonction qui n'accepte que certains caracteres dans une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR