Jump to content

Remplacement de caractères


Recommended Posts

Bonjour,

En cherchant à personnaliser un module, j'ai besoin de récupérer une chaine de caractères.
Le problème est que je n'arrive pas à la traiter pour ce qui est de la suppression des caractères spéciaux s 'é è'.

J'ai fait différents tests avec

preg_replace

ou encore

strtr


Dans ces cas, ma chaine n'est plus affichée du tout.

La seule chose qui fonctionne est la suppression des espaces

$chaine = preg_replace('/\s/', '', $chaine);



Auriez-vous une exemple concret pour m'aider ?
Merci d'avance.

Link to comment
Share on other sites

Merci,

En fait, j'ai fait pas mal de recherche sur php.net et autres mais quand je teste str_replace
avec les caractères spéciaux 'é' à remplacer par 'e', il ne se passe rien.
Ou ma chaine apparaît vide, par contre, pour les espaces j'ai utilisé '/\s/' et '' la aucun problème.

Ou est ce qu'il serait possible d'appeler la même fonction que celle qui est utilisée automatiquement pour les champs 'url-simplifié'
de l'ajout de catégories, produits etc... ? et obtenir ainsi "ma-chaine" plutôt que "ma chaîne"
Encore merci.

Link to comment
Share on other sites

function wd_remove_accents($str, $charset='utf-8')
{
   $str = htmlentities($str, ENT_NOQUOTES, $charset);

   $str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str);
   $str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); // pour les ligatures e.g. 'œ'
   $str = preg_replace('#\&[^;]+\;#', '', $str); // supprime les autres caractères

   return $str;
}



Mais bon, ça me parait lourd pour ça ! Cela doit être des soucis d'encodage, les accents ne doivent pas sortir en " é " mais en "@Ae" ou caractères bizarres.

Link to comment
Share on other sites

Bonsoir,

Je vous remercie pour vos réponses.

En essayant la fonction de vincent, dés que je l'utilise, il me renvoi une page blanche.
Juste au cas ou, pour l'appel j'utilise $machaine2 = wd_remove_accents($machaine);

j'ai aussi essayé $chaine = preg_replace(’/éè\s/u’, ‘’, $chaine);
dans ce cas le site s'affiche mais ma chaine n'apparaît plus ou vide.

Je vais regarder aux string special unicode.
Encore merci à vous

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...