[PHP] caracteres speciaux

caracteres speciaux [PHP] - PHP - Programmation

Marsh Posté le 12-10-2004 à 13:12:52    

bonjour!
 
voila je suis vraiment ennuyé
je code pas mal mais là je suis face à un problème absolument ridicule: je ne parviens pas à faire une fonction "clean" pour supprimer tous les caracteres speciaux d'une chaine
il y a des fonctions qui permettent de convertir ces caracteres etc... mais à ma connaissance aucune ne prevoit de les supprimer;-(
j'ai donc pensé a faire un ereg_replace(); le problème est qu'il est pas très judicieux de faire des dizaines d'ereg_replace() consecutifs pour prendre en compte "?.$£µ*¨^! etc...
 
si vous avez une solution moins bourrin je vous prie de bien vouloir me la donner car je bloque vraiment;-)

Reply

Marsh Posté le 12-10-2004 à 13:12:52   

Reply

Marsh Posté le 12-10-2004 à 13:23:44    

Un seul str_replace avec un tableau comme premier argument ?
 
Faudra écrire un livre "Ma vie sans ereg" je suis sûr que ça sera utile :D


Message édité par naceroth le 12-10-2004 à 13:24:22
Reply

Marsh Posté le 12-10-2004 à 15:27:52    

hello
merci pour la réponse;-)
malheureusement j'ai déjà essayé et ca ne passe pas avec tous les caracteres genre } et d'autres;-(
$pasbien = array("&", "~", "#", "|", "`", "^", "¤" );
$cqfd = str_replace($pasbien, "", "$letrucachanger" );
 
quelle cata!

Reply

Marsh Posté le 12-10-2004 à 16:25:40    

show a écrit :

hello
merci pour la réponse;-)
malheureusement j'ai déjà essayé et ca ne passe pas avec tous les caracteres genre } et d'autres;-(
$pasbien = array("&", "~", "#", "|", "`", "^", "¤" );
$cqfd = str_replace($pasbien, "", "$letrucachanger" );
 
quelle cata!


 
Euh, } est bien viré, je sais pas comment tu t'y prends :D

Reply

Marsh Posté le 12-10-2004 à 18:05:38    

Citation :

Euh, } est bien viré, je sais pas comment tu t'y prends


je cherche un moyen de pas le virer lol
 
EDIT: quand on a sommeil il faut dormir et non pas coder
chaque fois c'est pareil je fais des centaines de lignes sans problème et puis je bugue sur la ligne de trop :lol:
en fait ça marche sans aucun problème avec l'array j'ai même pas réfléchi je l'ai refais depuis le début et ca baigne...
 
merci quand même pour l'aide naceroth c'etait bien la solution;-)


Message édité par show le 12-10-2004 à 18:30:22
Reply

Marsh Posté le 13-10-2004 à 13:59:32    

bon pour tous ceux qui auraient le même problème que moi je donne la solution finale;-)
 
voila donc un bout de code qui sert à avoir une chaine avec seulement des lettres et des espaces (caracteres speciaux "% $ µ...", accents et autres trucs vires...)
 
$chaine = strtr($chaine,
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn" );
$chaine_sans_caracteres_speciaux_ni_accents = ereg_replace("[^A-Za-z0-9]", "", $chaine);
 
après une bonne de prise de tête je ne vois rien d'autre de possible pour detecter automatiquement les caracteres alphanumeriques (en str_replace j'aurais du faire un array; c'est pas pratique et ca m'aurait empêché d'être exhaustif puisque je n'etais pas prêt à lister TOUS les mauvais caracteres...)
donc en fait ereg est plus lent que str mais dans mon cas c'est beaucoup plus sur et beaucoup plus rapide...

Reply

Sujets relatifs:

Leave a Replay

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