1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
function removeDiacritics($string) {
$string=trim($string);
$diacriticsEquivalent=array(
0xc3 => array(
0xc380 => 'A', 0xc381 => 'A', 0xc382 => 'A', 0xc383 => 'A', 0xc384 => 'A', 0xc385 => 'A', 0xc386 => 'AE', 0xc387 => 'C',
0xc388 => 'E', 0xc389 => 'E', 0xc38a => 'E', 0xc38b => 'E', 0xc38c => 'I', 0xc38d => 'I', 0xc38e => 'I', 0xc38f => 'I',
0xc390 => 'D', 0xc391 => 'N', 0xc392 => 'O', 0xc393 => 'O', 0xc394 => 'O', 0xc395 => 'O', 0xc396 => 'O', 0xc398 => 'O',
0xc399=> 'U', 0xc39a => 'U', 0xc39b => 'U', 0xc39c => 'U', 0xc39d => 'Y', 0xc39f => 'S', 0xc3a0 => 'a', 0xc3a1 => 'a',
0xc3a2 => 'a', 0xc3a3 => 'a', 0xc3a4 => 'a', 0xc3a5 => 'a', 0xc3a6 => 'ae', 0xc3a7 => 'c', 0xc3a8 => 'e', 0xc3a9 => 'e',
0xc3aa => 'e', 0xc3ab => 'e', 0xc3ac => 'i', 0xc3ad => 'i', 0xc3ae => 'i', 0xc3af => 'i', 0xc3b0 => 'o', 0xc3b1 => 'n',
0xc3b2 => 'o', 0xc3b3 => 'o', 0xc3b4 => 'o', 0xc3b5 => 'o', 0xc3b6 => 'o', 0xc3b8 => 'o', 0xc3b9 => 'u', 0xc3ba => 'u',
0xc3bb => 'u', 0xc3bc => 'u', 0xc3bd => 'y', 0xc3bf => 'y'
),
0xc4 => array(
0xc480 => 'A', 0xc481 => 'a', 0xc482 => 'A', 0xc483 => 'a', 0xc484 => 'A', 0xc485 => 'a', 0xc486 => 'C', 0xc487 => 'c',
0xc488 => 'C', 0xc489 => 'c', 0xc48a => 'C', 0xc48b => 'c', 0xc48c => 'C', 0xc48d => 'c', 0xc48e => 'D', 0xc48f => 'd',
0xc490 => 'D', 0xc491 => 'd', 0xc492 => 'E', 0xc493 => 'e', 0xc494 => 'E', 0xc495 => 'e', 0xc496 => 'E', 0xc497 => 'e',
0xc498 => 'E', 0xc499 => 'e', 0xc49a => 'E', 0xc49b => 'e', 0xc49c => 'G', 0xc49d => 'g', 0xc49e => 'G', 0xc49f => 'g',
0xc4a0 => 'G', 0xc4a1 => 'g', 0xc4a2 => 'G', 0xc4a3 => 'g', 0xc4a4 => 'H', 0xc4a5 => 'h', 0xc4a6 => 'H', 0xc4a7 => 'h',
0xc4a8 => 'I', 0xc4a9 => 'i', 0xc4aa => 'I', 0xc4ab => 'i', 0xc4ac => 'I', 0xc4ad => 'i', 0xc4ae => 'I', 0xc4af => 'i',
0xc4b0 => 'I', 0xc4b1 => 'i', 0xc4b2 => 'IJ', 0xc4b3 => 'ij', 0xc4b4 => 'J', 0xc4b5 => 'j', 0xc4b6 => 'K', 0xc4b7 => 'k',
0xc4b8 => 'k', 0xc4b9 => 'L', 0xc4ba => 'l', 0xc4bb => 'L', 0xc4bc => 'l', 0xc4bd => 'L', 0xc4be => 'l', 0xc4bf => 'L'
),
0xc5 => array(
0xc580 => 'l', 0xc581 => 'L', 0xc582 => 'l', 0xc583 => 'N', 0xc584 => 'n', 0xc585 => 'N', 0xc586 => 'n', 0xc587 => 'N',
0xc588 => 'n', 0xc589 => 'n', 0xc58a => 'N', 0xc58b => 'n', 0xc58c => 'O', 0xc58d => 'o', 0xc58e => 'O', 0xc58f => 'o',
0xc590 => 'O', 0xc591 => 'o', 0xc592 => 'OE', 0xc593 => 'oe', 0xc594 => 'R', 0xc595 => 'r', 0xc596 => 'R', 0xc597 => 'r',
0xc598 => 'R', 0xc599 => 'r', 0xc59a => 'S', 0xc59b => 's', 0xc59c => 'S', 0xc59d => 's', 0xc59e => 'S', 0xc59f => 's',
0xc5a0 => 'S', 0xc5a1 => 's', 0xc5a2 => 'T', 0xc5a3 => 't', 0xc5a4 => 'T', 0xc5a5 => 't', 0xc5a6 => 'T', 0xc5a7 => 't',
0xc5a8 => 'U', 0xc5a9 => 'u', 0xc5aa => 'U', 0xc5ab => 'u', 0xc5ac => 'U', 0xc5ad => 'u', 0xc5ae => 'U', 0xc5af => 'u',
0xc5b0 => 'U', 0xc5b1 => 'u', 0xc5b2 => 'U', 0xc5b3 => 'u', 0xc5b4 => 'W', 0xc5b5 => 'w', 0xc5b6 => 'Y', 0xc5b7 => 'y',
0xc5b8 => 'Y', 0xc5b9 => 'Z', 0xc5ba => 'z', 0xc5bb => 'Z', 0xc5bc => 'z', 0xc5bd => 'Z', 0xc5be => 'z', 0xc5bf => 's'
),
0xc6 => array(
0xc680 => 'b', 0xc681 => 'B', 0xc682 => 'B', 0xc683 => 'b', 0xc684 => 'B', 0xc685 => 'b', 0xc686 => 'O', 0xc687 => 'C',
0xc688 => 'c', 0xc689 => 'D', 0xc68a => 'D', 0xc68b => 'd', 0xc68c => 'd', 0xc68d => 'd', 0xc68e => 'E', 0xc68f => 'E',
0xc690 => 'E', 0xc691 => 'F', 0xc692 => 'f', 0xc693 => 'G', 0xc694 => 'G', 0xc695 => 'hv', 0xc696 => 'I', 0xc697 => 'I',
0xc698 => 'K', 0xc699 => 'k', 0xc69a => 'l', 0xc69b => 'l', 0xc69c => 'M', 0xc69d => 'N', 0xc69e => 'n', 0xc69f => 'O',
0xc6a0 => 'O', 0xc6a1 => 'o', 0xc6a2 => 'OI', 0xc6a3 => 'oi', 0xc6a4 => 'P', 0xc6a5 => 'p', 0xc6a6 => 'R', 0xc6a7 => 'S',
0xc6a8 => 's', 0xc6a9 => 'S', 0xc6aa => 'S', 0xc6ab => 't', 0xc6ac => 'T', 0xc6ad => 't', 0xc6ae => 'T', 0xc6af => 'U',
0xc6b0 => 'u', 0xc6b1 => 'U', 0xc6b2 => 'V', 0xc6b3 => 'Y', 0xc6b4 => 'y', 0xc6b5 => 'Z', 0xc6b6 => 'z',
0xc6bb => '2', 0xc6bc => '5', 0xc6bd => '5'
),
0xc7 => array(
0xc784 => 'DZ', 0xc785 => 'Dz', 0xc786 => 'dz', 0xc787 => 'LJ',
0xc788 => 'Lj', 0xc789 => 'lj', 0xc78a => 'NJ', 0xc78b => 'Nj', 0xc78c => 'nj', 0xc78d => 'A', 0xc78e => 'a', 0xc78f => 'I',
0xc790 => 'i', 0xc791 => 'O', 0xc792 => 'o', 0xc793 => 'U', 0xc794 => 'u', 0xc795 => 'U', 0xc796 => 'u', 0xc797 => 'U',
0xc798 => 'u', 0xc799 => 'U', 0xc79a => 'u', 0xc79b => 'U', 0xc79c => 'u', 0xc79d => 'e', 0xc79e => 'A', 0xc79f => 'a',
0xc7a0 => 'A', 0xc7a1 => 'a', 0xc7a2 => 'AE', 0xc7a3 => 'ae', 0xc7a4 => 'G', 0xc7a5 => 'g', 0xc7a6 => 'G', 0xc7a7 => 'g',
0xc7a8 => 'K', 0xc7a9 => 'k', 0xc7aa => 'O', 0xc7ab => 'o', 0xc7ac => 'O', 0xc7ad => 'o',
0xc7b0 => 'j', 0xc7b1 => 'DZ', 0xc7b2 => 'Dz', 0xc7b3 => 'dz', 0xc7b4 => 'G', 0xc7b5 => 'g', 0xc7b6 => 'H',
0xc7b8 => 'N', 0xc7b9 => 'n', 0xc7ba => 'A', 0xc7bb => 'a', 0xc7bc => 'AE', 0xc7bd => 'ae', 0xc7be => 'O', 0xc7bf => 'o'
),
0xc8 => array(
0xc880 => 'A', 0xc881 => 'a', 0xc882 => 'A', 0xc883 => 'a', 0xc884 => 'E', 0xc885 => 'e', 0xc886 => 'E', 0xc887 => 'e',
0xc888 => 'I', 0xc889 => 'i', 0xc88a => 'I', 0xc88b => 'i', 0xc88c => 'O', 0xc88d => 'o', 0xc88e => 'O', 0xc88f => 'o',
0xc890 => 'R', 0xc891 => 'r', 0xc892 => 'R', 0xc893 => 'r', 0xc894 => 'U', 0xc895 => 'u', 0xc896 => 'U', 0xc897 => 'u',
0xc898 => 'S', 0xc899 => 's', 0xc89a => 'T', 0xc89b => 't', 0xc89e => 'H', 0xc89f => 'h',
0xc8a0 => 'N', 0xc8a1 => 'd', 0xc8a2 => 'OU', 0xc8a3 => 'ou', 0xc8a4 => 'Z', 0xc8a5 => 'z', 0xc8a6 => 'A', 0xc8a7 => 'a',
0xc8a8 => 'E', 0xc8a9 => 'e', 0xc8aa => 'O', 0xc8ab => 'o', 0xc8ac => 'O', 0xc8ad => 'o', 0xc8ae => 'O', 0xc8af => 'o',
0xc8b0 => 'O', 0xc8b1 => 'o', 0xc8b2 => 'Y', 0xc8b3 => 'y', 0xc8b4 => 'l', 0xc8b5 => 'n', 0xc8b6 => 't', 0xc8b7 => 'j',
0xc8b8 => 'db', 0xc8b9 => 'qp', 0xc8ba => 'A', 0xc8bb => 'C', 0xc8bc => 'c', 0xc8bd => 'L', 0xc8be => 'T', 0xc8bf => 's'
),
0xc9 => array(
0xc980 => 'z', 0xc983 => 'B', 0xc984 => 'U', 0xc985 => 'V', 0xc986 => 'E', 0xc987 => 'e',
0xc988 => 'J', 0xc989 => 'j', 0xc98a => 'Q', 0xc98b => 'q', 0xc98c => 'R', 0xc98d => 'R', 0xc98e => 'Y', 0xc98f => 'y',
0xc990 => 'a', 0xc991 => 'a', 0xc992 => 'a', 0xc993 => 'b', 0xc994 => 'o', 0xc995 => 'c', 0xc996 => 'd', 0xc997 => 'd',
0xc998 => 'e', 0xc999 => 'e', 0xc99a => 'e', 0xc99b => 'e', 0xc99e => 'e', 0xc99f => 'j',
0xc9a0 => 'g', 0xc9a1 => 'g', 0xc9a2 => 'G', 0xc9a3 => 'g', 0xc9a4 => 'g', 0xc9a5 => 'h', 0xc9a6 => 'h', 0xc9a7 => 'h',
0xc9a8 => 'i', 0xc9a9 => 'i', 0xc9aa => 'i', 0xc9ab => 'l', 0xc9ac => 'l', 0xc9ad => 'l', 0xc9ae => 'lz', 0xc9af => 'm',
0xc9b0 => 'm', 0xc9b1 => 'm', 0xc9b2 => 'n', 0xc9b3 => 'n', 0xc9b4 => 'N', 0xc9b5 => 'o', 0xc9b6 => 'OE', 0xc9b7 => 'o',
0xc9b8 => 'p', 0xc9b9 => 'r', 0xc9ba => 'r', 0xc9bb => 'r', 0xc9bc => 'r', 0xc9bd => 'r', 0xc9be => 'r', 0xc9bf => 'r'
),
0xca => array(
0xca80 => 'R', 0xca81 => 'R', 0xca82 => 's', 0xca84 => 'j', 0xca87 => 't',
0xca88 => 't', 0xca89 => 'u', 0xca8a => 'u', 0xca8b => 'v', 0xca8c => 'v', 0xca8d => 'w', 0xca8e => 'y', 0xca8f => 'y',
0xca90 => 'z', 0xca91 => 'z', 0xca97 => 'c',
0xca99 => 'B', 0xca9a => 'e', 0xca9b => 'G', 0xca9c => 'H', 0xca9d => 'j', 0xca9e => 'k', 0xca9f => 'L',
0xcaa0 => 'q', 0xcaa3 => 'dz', 0xcaa4 => 'dz', 0xcaa5 => 'dz', 0xcaa6 => 'ts', 0xcaa7 => 'tf',
0xcaa8 => 'tc', 0xcaa9 => 'fn', 0xcaaa => 'ls', 0xcaab => 'lz', 0xcaae => 'h', 0xcaaf => 'h',
0xcab0 => 'h', 0xcab1 => 'h', 0xcab2 => 'j', 0xcab3 => 'r', 0xcab4 => 'r', 0xcab5 => 'r', 0xcab6 => 'r', 0xcab7 => 'w',
0xcab8 => 'y', 0xcab9 => '', 0xcaba => '', 0xcabb => '', 0xcabc => '', 0xcabd => '', 0xcabe => '', 0xcabf => ''
),
0xcb => array(
0xcb80 => '', 0xcb81 => '', 0xcb82 => '', 0xcb83 => '', 0xcb84 => '', 0xcb85 => '', 0xcb86 => '', 0xcb87 => '',
0xcb88 => '', 0xcb89 => '', 0xcb8a => '', 0xcb8b => '', 0xcb8c => '', 0xcb8d => '', 0xcb8e => '', 0xcb8f => '',
0xcb90 => '', 0xcb91 => '', 0xcb92 => '', 0xcb93 => '', 0xcb94 => '', 0xcb95 => '', 0xcb96 => '', 0xcb97 => '',
0xcb98 => '', 0xcb99 => '', 0xcb9a => '', 0xcb9b => '', 0xcb9c => '', 0xcb9d => '', 0xcb9e => '', 0xcb9f => '',
0xcba0 => '', 0xcba1 => '', 0xcba2 => '', 0xcba3 => '', 0xcba4 => '', 0xcba5 => '', 0xcba6 => '', 0xcba7 => '',
0xcba8 => '', 0xcba9 => '', 0xcbaa => '', 0xcbab => '', 0xcbac => '', 0xcbad => '', 0xcbae => '', 0xcbaf => '',
0xcbb0 => '', 0xcbb1 => '', 0xcbb2 => '', 0xcbb3 => '', 0xcbb4 => '', 0xcbb5 => '', 0xcbb6 => '', 0xcbb7 => '',
0xcbb8 => '', 0xcbb9 => '', 0xcbba => '', 0xcbbb => '', 0xcbbc => '', 0xcbbd => '', 0xcbbe => '', 0xcbbf => ''
),
0xcc => array(
0xcc80 => '', 0xcc81 => '', 0xcc82 => '', 0xcc83 => '', 0xcc84 => '', 0xcc85 => '', 0xcc86 => '', 0xcc87 => '',
0xcc88 => '', 0xcc89 => '', 0xcc8a => '', 0xcc8b => '', 0xcc8c => '', 0xcc8d => '', 0xcc8e => '', 0xcc8f => '',
0xcc90 => '', 0xcc91 => '', 0xcc92 => '', 0xcc93 => '', 0xcc94 => '', 0xcc95 => '', 0xcc96 => '', 0xcc97 => '',
0xcc98 => '', 0xcc99 => '', 0xcc9a => '', 0xcc9b => '', 0xcc9c => '', 0xcc9d => '', 0xcc9e => '', 0xcc9f => '',
0xcca0 => '', 0xcca1 => '', 0xcca2 => '', 0xcca3 => '', 0xcca4 => '', 0xcca5 => '', 0xcca6 => '', 0xcca7 => '',
0xcca8 => '', 0xcca9 => '', 0xccaa => '', 0xccab => '', 0xccac => '', 0xccad => '', 0xccae => '', 0xccaf => '',
0xccb0 => '', 0xccb1 => '', 0xccb2 => '', 0xccb3 => '', 0xccb4 => '', 0xccb5 => '', 0xccb6 => '', 0xccb7 => '',
0xccb8 => '', 0xccb9 => '', 0xccba => '', 0xccbb => '', 0xccbc => '', 0xccbd => '', 0xccbe => '', 0xccbf => ''
)
);
$i=0;
$strlen=strlen($string);
$str="";
while ($i<$strlen) {
$ord=ord($string[$i]);
if ($ord>=195 && $ord<=204) {
$hex=dechex($ord);
while ($i<$strlen-1) {
if (ord($string[$i+1])>=128 && ord($string[$i+1])<=192) {
$hex=$hex.dechex(ord($string[$i+1]));
$i++;
} else {
break;
}
}
foreach ($diacriticsEquivalent as $key => $arr) {
if (hexdec($hex)>>8==$key) {
foreach ($arr as $k => $v) {
if (hexdec($hex)==$k) {
$str.=$v;
break;
}
}
break;
}
}
} else {
$str.=$string[$i];
}
$i++;
}
return $str;
} |
Partager