Supprimer accents ET majuscules

Supprimer accents ET majuscules - PHP - Programmation

Marsh Posté le 15-05-2006 à 09:00:50    

Bonjour à tous !
Petit problème certainement très simple à résoudre :
J'ai $nom = "Fr88ééàêGhertèHHyy8";
Je souhaiterais acquérir $nom2 qui serait $nom en lui ôtant tous les accents et en remplacant les majuscules par les minuscules, les deux en mm temps.
Pouvez-vous m'aider ? ;)
Merci d'avance !

Reply

Marsh Posté le 15-05-2006 à 09:00:50   

Reply

Marsh Posté le 15-05-2006 à 10:47:54    

Y'a aucune fonction toute faîte pour virer les accents a priori, mais une petite recherche Google avec "remove accents" php devrait être fructueuse.
 
Pour les majuscules, voir strtolower.

Reply

Marsh Posté le 15-05-2006 à 10:49:31    

Ouais les majuscules seules je sais faire ;)
Mais les accents me posent problème :(
Je rechercherai donc sur Google si personne n'a d'idée précise..

Reply

Marsh Posté le 15-05-2006 à 10:51:07    

Premier résultat Google avec ce que je t'ai indiqué :
 

Code :
  1. Function removeaccents($string){
  2.   $string= strtr($string,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿ
  3. Ññ",
  4.  "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn" );
  5.   return $string;
  6.   }


 
A tester.

Reply

Marsh Posté le 15-05-2006 à 13:52:38    

Function removeaccents2($defenseur){    $defenseur= strtr($defenseur,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",  "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn" );    return $defenseur;    }  
 
J'ai donc essayé ça .. Par exemple !
Et lorsque $defenseur='litleléa' l'accent est maintenu après l'opération.
 
Quelqu'un a-t-il une idée ?

Reply

Marsh Posté le 15-05-2006 à 14:18:47    

tu recuperes bien le retour de la fonction? tu ne fais pas un truc du genre?
 

Code :
  1. $defenseur='litleléa'
  2. removeaccents2($defenseur);
  3. echo $defenseur;


Message édité par cinocks le 15-05-2006 à 14:19:06

---------------
MZP est de retour
Reply

Marsh Posté le 15-05-2006 à 14:24:50    

J'ai fait exactement ça :
$defenseur='litleléa';
Function removeaccents2($defenseur){    $defenseur= strtr($defenseur,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",  "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn" );    return $defenseur;    }  
removeaccents2($defenseur);
echo "$defenseur";
 
 
Et l'accent reste...

Reply

Marsh Posté le 15-05-2006 à 14:54:14    

bravo, normal que ca ne fait strictement rien. Tu lui passes une variable par valeur, et tu ne recuperes pas le retour de la fonction.  
 

Code :
  1. $defenseur = removeaccents2($defenseur);
  2. echo $defenseur;


 
ou  
 

Code :
  1. Function removeaccents2(&$defenseur){    $defenseur= strtr($defenseur,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",  "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn" );    return $defenseur;    } 
  2. removeaccents2($defenseur);
  3. echo $defenseur;


 
Là tu fonctionnes par référence. Tu ne passes plus le contenu de la variable $defenseur à la fonction, mais sa référence.  
 
Par contre, commence à faire propre dans le nommage. Ce ne veut rien dire $defenseur comme nom. Soit explicite, prefixe le nom de la variable par le typage de la variable.


---------------
MZP est de retour
Reply

Marsh Posté le 15-05-2006 à 15:01:54    

Oups, erreur d'étourderie, c'est bon ça marche ;)
Pour le nom des variables, pour moi ça veut dire quelque chose, alors .. ^^
Merci !

Reply

Marsh Posté le 15-05-2006 à 15:12:47    

je ne vois pas trop, ta fonction supprimant les accents est susceptible d'etre appelée de plusieurs endroits, et la portée de la variable ne sort pas  de la fonction, donc...


---------------
MZP est de retour
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed