Tom's Guide > Forum > Programmation > [PHP] supprimer tous les caracteres "non conventionels" dans un text

[PHP] supprimer tous les caracteres "non conventionels" dans un text

Forum Programmation : [PHP] supprimer tous les caracteres "non conventionels" dans un text

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

salut a tous, bon ben voila j'explique:

j'ai un textearea qui done donc un $_POST['texte'] que j'enregistre sous la variable $texte

ce que le veu c'est que le texte contenu dans $texte ne contienne que des caracteres "de base" (lettres, chiffre, ponctuation simple)...

en gros virer tous les caracteres "compliqués" comme $*^° etc etc...

comment faire ? :-P

merci d'avance,

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

je crois que c'est ton jour de chance ^^ voila ce que moi j'utilises :

Code :
  1. function garde_caracteres($txt,$garde='abcdefghijklmnopqrstuvwxyz0123456789',$replace='_')//ne garde que certains caracteres autorisés dans une chaine. les autres caracteres sont remplacés par $replace
  2. {
  3.     $ret="";
  4.     $garde=left($garde).$garde;
  5.     for($cpt=0;$cpt<strlen($txt);$cpt++)
  6.     {
  7.         $car=substr($txt,$cpt,1);
  8.         if(strrpos($garde,$car))
  9.             $ret.=$car;
  10.         elseif(right($ret)!=$replace)
  11.             $ret.=$replace;
  12.     }
  13.     if(strlen($replace))
  14.     {
  15.         if(right($ret)==$replace)
  16.             $ret=rogneright($ret);
  17.         if(left($ret)==$replace)
  18.             $ret=rogneleft($ret);
  19.     }
  20.     return $ret;
  21. }




voila je précise que la fonction n'est pas de moi. Et j'en remerci son auteur d'ailleurs ;-) :-D

EDIT : j'ai oublié des fonctions que j'utilises dans cette fonction :

function left($txt,$nb=1)
{
return substr($txt,0,$nb);
}
function right($txt,$nb=1)
{
return substr($txt,strlen($txt)-$nb,$nb);
}
function rogneleft($txt,$nb=1)
{
return substr($txt,$nb,strlen($txt));
}
function rogneright($txt,$nb=1)
{
return substr($txt,0,strlen($txt)-$nb);
}

Répondre à Kymic@IDN

merci a toi j'essayerai ca des que j'aurai le temps ;-)

Répondre à CrazyJester

oups érreur...

la fonction left avec left($garde) n'es pas définie :-(

Répondre à CrazyJester

Salut,

Un moyen puissant et rapide les REGEXP :)

Cherche un peu sur le net tu trouveras surement ton bonheur ;)

Cordialement S62.

Répondre à Shinji62

oui regarde mon post je l'ai édité ;)

dsl j'avais pas fait gaffe au fonction que j'utilisais !

la tout y est maintenant

Répondre à Kymic@IDN

merci Kymic c'est nikel ;-)

Répondre à CrazyJester

Pour ceux qui recherchent une solution plus courte: ereg_replace('([^a-zA-Z0-9])', '', $sString)

Répondre à Adri74100

Plutôt utiliser preg_replace que ereg_replace qui va prochainement disparaitre de PHP (dans la version 5.3 il lance une alerte et sera supprimé à partir de PHP6) car trop lent.

Répondre à SiM07

Le preg_replace() utiliser ci dessus ne gardera que les caractères de A à Z majuscules et minuscules et chiffres mais j'ai cru comprendre que tu voulais les apostrophes et d'autres trucs.
Maintenant faut savoir le pourquoi tu veux faire ça, si c'est pour un soucis de sécurité, je te conseille de tout garder mais de juste faire en sorte que le code html qui serait injecté soit affiché comme entré dans le formulaire, donc pas en créant une mise en forme.

J'utilise la fonction suivante:

Code :
  1. function securite_text($str)
  2. {
  3.     return htmlspecialchars(addslashes(trim($str)));
  4. }
  5. tu utilises ça comme suis
  6. $var = securite_text($_POST['contenu']);


Attention, le addslashes n'est à mettre que si tu insères dans une base de données, et si tu veux récupérer ces données par après ne pas oublier de faire un
$var = stripslashes($donnees);

Répondre à Calao
Tom's Guide > Forum > Programmation > [PHP] supprimer tous les caracteres "non conventionels" dans un text
Aller à :

Il y a 497 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens