Page 1 sur 1

ne conserver que les characteres necessaire

Posté : 16 juil. 2008, 11:03
par hakazizi
bonjour,
Apres plusieur jours de recherche infructueuse je vous demande de bien vouloir me donner une piste.
je voudrais juste savoir si il existe une fonction qui supprimerais tous les charactere speciaux.
j'ai essayer str_replace mais trop lent et pas tres efficaces je doit dire. ereg_replace encore laisse tous passer.
a moins que se soi moi qui ne sache pas l'utiliser
merci
voici ou j'en suis j'en suis a utiliser eregi_replace mais toujours rien.
<?php
$test="sam trop trop? ! ; .%µ * $'";
$test.='"<br>';
echo $test;
eregi_replace("^^[a-z0-9]$",'',$test);
echo $test;
?>
resultat obtenu

Code : Tout sélectionner

sam trop trop? ! ; .%µ * $'"<br>sam trop trop? ! ; .%µ * $'"<br>
resultat souhaité

Code : Tout sélectionner

sam trop trop br sam trop trop br

Posté : 16 juil. 2008, 11:15
par Shrell
Première chose : pour les caractères qui ne sont PAS dans un set, c'est [^a-z0-9] et pas ^[a-z0-9].
Ensuite je ne mettrais pas le premier circonflêxe et le dernier dollar dans l'expression réguilère, sinon il ne va chercher que les chaines qui ne comprennent QUE des caractères différents de a-z0-9
enfin, si tu ne stockes pas le résultat de la fonction, ça ne marchera pas

donc :
<?php
$test="sam trop trop? ! ; .%µ * $'"; 
$test.='"<br>'; 
echo $test; 
$test = eregi_replace("[^a-z0-9]",'',$test); 
echo $test; 
?>

Posté : 16 juil. 2008, 11:44
par hakazizi
sa fonctionne impecable et encore merci.
P.S. merci surtout pour les explication car je n'avais pas compris que sa s'utilisait de cette maniere donc je ne pouvais pas trouve l'erreur.