OVH Cloud OVH Cloud

virer les accents

12 réponses
Avatar
Fabrice Regnier
Salut la liste ;)

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"

merci et a+

f.

10 réponses

1 2
Avatar
ftc
Salut la liste ;)

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"


Je me souviens avoir vu une telle fonction quelque part dans la doc PHP.
faudrait que tu consulte celle-ci aux différentes rubriques parlant des
chaines de caractères.

Avatar
CrazyCat
Fabrice Regnier wrote:
Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"


Pas de fonction toute faite, mais une faisable:
<?
function no_accent($str_accent) {
$pattern = Array("/é/", "/è/", "/ê/", "/ç/", "/à/", "/â/", "/î/",
"/ï/", "/ù/", "/ô/");
$rep_pat = Array("e", "e", "e", "c", "a", "a", "i", "i", "u", "o");
$str_noacc = preg_replace($pattern, $rep_pat, $str_accent);
return $str_noacc;
}
?>

--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net

Avatar
Ngoc Ho
Fabrice Regnier de ses dix petits doigts nous a dit :

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"


bonjour,

tu peux éventuellement faire ca :
http://www.phpscripts-fr.net/portions/portion.php?id‰

Avatar
P. Renaud
Fabrice Regnier wrote:

Salut la liste ;)

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"
merci et a+
f.


Salut,

tu peux faire comme ça (exemple adapté de
http://www.lephpfacile.com/tips/index.php?p=7 ).

function OterAccents($chaine)
{
$original = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$copie = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";

return(strtr($chaine, $origignal, $copie);
}



Version équivalente ( http://www.phpinfo.net/astuces/astuces100.html )

$Caracs = array("¥" => "Y", "µ" => "u", "À" => "A", "Á" => "A",
"Â" => "A", "Ã" => "A", "Ä" => "A", "Å" => "A",
"Æ" => "A", "Ç" => "C", "È" => "E", "É" => "E",
"Ê" => "E", "Ë" => "E", "Ì" => "I", "Í" => "I",
"Î" => "I", "Ï" => "I", "Ð" => "D", "Ñ" => "N",
"Ò" => "O", "Ó" => "O", "Ô" => "O", "Õ" => "O",
"Ö" => "O", "Ø" => "O", "Ù" => "U", "Ú" => "U",
"Û" => "U", "Ü" => "U", "Ý" => "Y", "ß" => "s",
"à" => "a", "á" => "a", "â" => "a", "ã" => "a",
"ä" => "a", "å" => "a", "æ" => "a", "ç" => "c",
"è" => "e", "é" => "e", "ê" => "e", "ë" => "e",
"ì" => "i", "í" => "i", "î" => "i", "ï" => "i",
"ð" => "o", "ñ" => "n", "ò" => "o", "ó" => "o",
"ô" => "o", "õ" => "o", "ö" => "o", "ø" => "o",
"ù" => "u", "ú" => "u", "û" => "u", "ü" => "u",
"ý" => "y", "ÿ" => "y");

$string = strtr("$string", $Caracs);


Sinon pas mal d'autres résultats avec une petite recherche :
http://www.google.fr/search?hl=fr&q=php+supprimer+les+accents&meta
Patrick.

Avatar
Olivier Miakinen

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"


La question revient régulièrement dans ce groupe.

Si ton encodage de départ est sur un seul octet (ISO-8859-1 par
exemple), alors la fonction strtr est ton amie :
http://fr3.php.net/manual/fr/function.strtr.php

Sinon, c'est plus compliqué. Voir les archives du groupe.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
bruno modulix
Fabrice Regnier wrote:
Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"


str_replace() est ton amie.

--
bruno desthuilliers
ruby -e "print ''.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"

Avatar
stephane
une p'tite regexp
$txt = eregi_replace("[èéêë]","e", $txt);


Fabrice Regnier wrote:

Existe-il une fonction en php qui permette de supprimer les accents
dans une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"



str_replace() est ton amie.




Avatar
gorrk
Salut la liste ;)

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"

merci et a+

f.


Cette fonction me parait bien :

function no_accents($string)
{
$from = "ÀÁÂÃÄÅàáâãäåÇçÈÉÊËèéêëÌÍÎÏìíîïÑñÒÓÔÕÖØòóôõöøÙÚÛÜùúûüÿ";
$to = "AAAAAAaaaaaaCcEEEEeeeeIIIIiiiiNnOOOOOOooooooUUUUuuuuy";
return strtr($string, $from, $to);
}

Surtout ne pas utiliser d'expressions régulières, donc pas de fonctions
comme ereg(i), ereg(i)_replace, preg_replace, ... car cela consomme
beaucoup plus de ressources au niveau du serveur.

Avatar
bruno modulix
stephane wrote:
(top-post corrigé)

Fabrice Regnier wrote:

Existe-il une fonction en php qui permette de supprimer les accents
dans une chaine ?
Exemple: "andré et gwénaël" donnerait "andre et gwenael"




str_replace() est ton amie.

une p'tite regexp

$txt = eregi_replace("[èéêë]","e", $txt);


Une regexp pour ça ? Tu chasses les mouches au P38, toi ?-)

--
bruno desthuilliers
ruby -e "print ''.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"



Avatar
loufoque
Fabrice Regnier a dit le 05/04/2005 à 13:25:

Existe-il une fonction en php qui permette de supprimer les accents dans
une chaine ?


Pour quoi faire ?

1 2