Remplacer caractere non autorisée [PHP]

alphon5o -  
Zep3k!GnO Messages postés 2049 Statut Membre -
Bonjour,

je souhaite pouvoir recuperer une donnée rentré depuis un formulaire. l'utilisateur ne doit par contre entrer que des caracteres compris entre [a-z], [A-Z], [0-9]; pour pouvoir etre sur que ce seulement ces caracteres la qui sont saisi j'utilise un preg_match("#[a-zA-Z0-9]#", $_POST['val_input']); jusque là tout va bien maintenant j'aimerai pouvoir remplacer tous les autres caracteres ne repondant a la regle par des "_" ou si possible par leur equivalent, seulement pr les caractere accentués, c'est a dire é par e, à par a, ...
merci pour vos contribution

1 réponse

  1. Zep3k!GnO Messages postés 2049 Statut Membre 200
     
    Pour remplacer accents par sans accents, moi j'utilise cette fonction que j'ai faite :
    function cleanString($str) { 
      // Remplacement des accents 
      $avant = "àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ" ; 
      $apres = "aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY" ; 
      $str = strtr($str, $avant, $apres); 
      return $str ; 
    } 
    


    Sinon pour remplacer par des '_' :
    $sNewString = preg_replace("#[^a-zA-Z0-9]#", "_", $_POST['val_input']); 
    
    0