Dawa www.shootmeagain.com | Hello, Cela ressemble à une question déjà tombée 1000x. Elle va un peu plus loin toutefois. Pour échapper certains accents (et les transformer en ce même caractère non accentué), j'utilise depuis des années une fonction faite main :
Code :
- function no_accent($str_accent) {
- $pattern = Array("/æ/", "/É/", "/é/", "/è/", "/ê/", "/ë/", "/€/", "/ç/", "/Ç/", "/à/", "/á/", "/â/", "/ä/", "/ã/", "/Ä/", "/À/", "/å/", "/Â/", "/î/", "/ï/", "/í/", "/ì/", "/$/", "/µ/", "/ù/", "/ü/", "/û/", "/ú/", "/Ó/", "/ô/", "/ö/", "/õ/", "/ø/", "/Ø/", "/ò/","/ó/", "/ð/", "/ý/", "/ÿ/", "/ž/", "/’/" );
- $rep_pat = Array("ae", "e", "e", "e", "e", "e", "e", "c", "C", "a", "a", "a", "a", "a", "a", "a", "a", "a", "i", "i", "i", "i", "", "u", "u", "u", "u", "u", "o", "o", "o", "o", "o", "o", "o", "o", "d", "y", "y", "z","" );
- $str_noacc = preg_replace($pattern, $rep_pat, $str_accent);
- return $str_noacc;
- }
|
Le problème c'est qu'on utilise parfois des termes d'autres alphabets et je dois à chaque fois adapter cette liste et corriger manuellement le problème. J'ai donc trouvé une fonction un peu plus complète :
Code :
- function no_accentNEW($text) {
- $utf8 = array(
- '/[áàâãªäåæ]/u' => 'a',
- '/[ÁÀÂÃÄÅÆ]/u' => 'A',
- '/[éèêë]/u' => 'e',
- '/[ÉÈÊË]/u' => 'E',
- '/[ÍÌÎÏÍ]/u' => 'I',
- '/[íìîï]/u' => 'i',
- '/[óòôõºöðø]/u' => 'o',
- '/[ÓÒÔÕÖØ]/u' => 'O',
- '/[úùûü]/u' => 'u',
- '/[ÚÙÛÜ]/u' => 'U',
- '/[ýýÿ]/u' => 'y',
- '/Š/u' => 'S',
- '/š/u' => 's',
- '/ç/' => 'c',
- '/Ç/' => 'C',
- '/Ð/' => 'Dj',
- '/ñ/' => 'n',
- '/Ñ/' => 'N',
- '/Ý/' => 'Y',
- '/Ž/' => 'Z',
- '/ž/' => 'z',
- '/þ/' => 'b',
- '/Þ/' => 'B',
- '/ƒ/' => 'f',
- '/ß/' => 'ss',
- '/Œ/' => 'Oe',
- '/œ/' => 'oe',
- '/–/' => '-', // conversion d'un tiret UTF-8 en un tiret simple
- '/[‘’‚‹›]/u' => ' ', // guillemet simple
- '/[“”«»„]/u' => ' ', // guillemet double
- '/ /' => ' ', // espace insécable (équiv. à 0x160)
- );
- $text = preg_replace(array_keys($utf8), array_values($utf8), $text);
- return $text;
- }
|
Le seul souci est qu'on ne comprend pas non plus TOUS les accents et caractères spéciaux. Je prends l'exemple de bizarrerie comme Ġ Ř Ĉ etc. Il y en a des centaines comme ça, reprises ici : https://www.jchr.be/html/caracteres.htm Mon plan A serait évidemment de refaire une fonction manuellement qui reprendrait tous ces foutus caractères, mais je me demandais évidemment, par gain de temps, si l'un d'entre vous serait éventuellement déjà tombé sur une fonction similaire ? Merci et bonne journée ! Message édité par Dawa le 24-03-2018 à 07:50:07 ---------------
SHOOT ME AGAIN WEBZINE
|