443 lines
10 KiB
PHP
443 lines
10 KiB
PHP
<?php namespace ZN\Security;
|
||
/**
|
||
* ZN PHP Web Framework
|
||
*
|
||
* "Simplicity is the ultimate sophistication." ~ Da Vinci
|
||
*
|
||
* @package ZN
|
||
* @license MIT [http://opensource.org/licenses/MIT]
|
||
* @author Ozan UYKUN [ozan@znframework.com]
|
||
*/
|
||
|
||
class ForeignChar
|
||
{
|
||
/**
|
||
* Encode Foreign Char
|
||
*
|
||
* @param string $str
|
||
*
|
||
* @return string
|
||
*/
|
||
public static function encode(string $str) : string
|
||
{
|
||
$chars = self::$numericalCodes;
|
||
|
||
return str_replace(array_keys($chars), array_values($chars), $str);
|
||
}
|
||
|
||
/**
|
||
* Decode Foreign Char
|
||
*
|
||
* @param string $str
|
||
*
|
||
* @return string
|
||
*/
|
||
public static function decode(string $str) : string
|
||
{
|
||
$chars = self::$numericalCodes;
|
||
|
||
return str_replace(array_values($chars), array_keys($chars), $str);
|
||
}
|
||
|
||
/**
|
||
* Numerical Codes
|
||
*
|
||
* @var array
|
||
*/
|
||
public static $numericalCodes =
|
||
[
|
||
'À' => 'À',
|
||
'Ā' => 'Ā',
|
||
'ā' => 'ā',
|
||
'Ă' => 'Ă',
|
||
'ă' => 'ă',
|
||
'à' => 'à',
|
||
'Á' => 'Á',
|
||
'á' => 'á',
|
||
'Â' => 'Â',
|
||
'Ą' => 'Ą',
|
||
'ą' => 'ą',
|
||
'â' => 'â',
|
||
'Ã' => 'Ã',
|
||
'ã' => 'ã',
|
||
'Ä' => 'Ä',
|
||
'ä' => 'ä',
|
||
'Å' => 'Å',
|
||
'å' => 'å',
|
||
'Ǎ' => 'Ǎ',
|
||
'ǎ' => 'ǎ',
|
||
'Ǻ' => 'Ǻ',
|
||
'ǻ' => 'ǻ',
|
||
'Ǽ' => 'Ǽ',
|
||
'ǽ' => 'ǽ',
|
||
'Ȁ' => 'Ȁ',
|
||
'ȁ' => 'ȁ',
|
||
'Ȃ' => 'Ȃ',
|
||
'ȃ' => 'ȃ',
|
||
'Ȧ' => 'Ȧ',
|
||
'ȧ' => 'ȧ',
|
||
'Ǟ' => 'Ǟ',
|
||
'ǟ' => 'ǟ',
|
||
'Ǡ' => 'Ǡ',
|
||
'ǡ' => 'ǡ',
|
||
'Ǣ' => 'Ǣ',
|
||
'ǣ' => 'ǣ',
|
||
'Ⱥ' => 'Ⱥ',
|
||
|
||
'ß' => 'ß',
|
||
'ƀ' => 'ƀ',
|
||
'Ɓ' => 'Ɓ',
|
||
'Ƃ' => 'Ƃ',
|
||
'ƃ' => 'ƃ',
|
||
'Ƅ' => 'Ƅ',
|
||
'ƅ' => 'ƅ',
|
||
'Ƀ' => 'Ƀ',
|
||
|
||
'Ç' => 'Ç',
|
||
'ç' => 'ç',
|
||
'Ć' => 'Ć',
|
||
'ć' => 'ć',
|
||
'Ĉ' => 'Ĉ',
|
||
'ĉ' => 'ĉ',
|
||
'Ċ' => 'Ċ',
|
||
'ċ' => 'ċ',
|
||
'Č' => 'Č',
|
||
'č' => 'č',
|
||
'Ɔ' => 'Ɔ',
|
||
'Ƈ' => 'Ƈ',
|
||
'ƈ' => 'ƈ',
|
||
'Ȼ' => 'Ȼ',
|
||
'ȼ' => 'ȼ',
|
||
|
||
'Ð' => 'Ð',
|
||
'ð' => 'ð',
|
||
'Ď' => 'Ď',
|
||
'ď' => 'ď',
|
||
'Đ' => 'Đ',
|
||
'đ' => 'đ',
|
||
'Ɖ' => 'Ɖ',
|
||
'Ɗ' => 'Ɗ',
|
||
'Ƌ' => 'Ƌ',
|
||
'ƌ' => 'ƌ',
|
||
'ƍ' => 'ƍ',
|
||
'ȡ' => 'ȡ',
|
||
'ȸ' => 'ȸ',
|
||
|
||
'È' => 'È',
|
||
'è' => 'è',
|
||
'É' => 'É',
|
||
'é' => 'é',
|
||
'Ê' => 'Ê',
|
||
'ê' => 'ê',
|
||
'Ë' => 'Ë',
|
||
'ë' => 'ë',
|
||
'Ē' => 'Ē',
|
||
'ē' => 'ē',
|
||
'Ĕ' => 'Ĕ',
|
||
'ĕ' => 'ĕ',
|
||
'Ė' => 'Ė',
|
||
'ė' => 'ė',
|
||
'Ę' => 'Ę',
|
||
'ę' => 'ę',
|
||
'Ě' => 'Ě',
|
||
'ě' => 'ě',
|
||
'Ǝ' => 'Ǝ',
|
||
'Ə' => 'Ə',
|
||
'Ɛ' => 'Ɛ',
|
||
'ǝ' => 'ǝ',
|
||
'Ȅ' => 'Ȅ',
|
||
'ȅ' => 'ȅ',
|
||
'Ȇ' => 'Ȇ',
|
||
'ȇ' => 'ȇ',
|
||
'Ȩ' => 'Ȩ',
|
||
'ȩ' => 'ȩ',
|
||
'Ɇ' => 'Ɇ',
|
||
'ɇ' => 'ɇ',
|
||
|
||
'Ƒ' => 'Ƒ',
|
||
'ƒ' => 'ƒ',
|
||
|
||
'Ĝ' => 'Ĝ',
|
||
'ĝ' => 'ĝ',
|
||
'Ğ' => 'Ğ',
|
||
'ğ' => 'ğ',
|
||
'Ġ' => 'Ġ',
|
||
'ġ' => 'ġ',
|
||
'Ģ' => 'Ģ',
|
||
'ģ' => 'ģ',
|
||
'Ɠ' => 'Ɠ',
|
||
'Ǥ' => 'Ǥ',
|
||
'ǥ' => 'ǥ',
|
||
'Ǧ' => 'Ǧ',
|
||
'ǧ' => 'ǧ',
|
||
'Ǵ' => 'Ǵ',
|
||
'ǵ' => 'ǵ',
|
||
|
||
'Ĥ' => 'Ĥ',
|
||
'ĥ' => 'ĥ',
|
||
'Ħ' => 'Ħ',
|
||
'ħ' => 'ħ',
|
||
'Ɣ' => 'Ɣ',
|
||
'ƕ' => 'ƕ',
|
||
'Ƕ' => 'Ƕ',
|
||
'Ȟ' => 'Ȟ',
|
||
'ȟ' => 'ȟ',
|
||
|
||
'Ì' => 'Ì',
|
||
'ì' => 'ì',
|
||
'Í' => 'Í',
|
||
'í' => 'í',
|
||
'Î' => 'Î',
|
||
'î' => 'î',
|
||
'Ï' => 'Ï',
|
||
'ï' => 'ï',
|
||
'Ĩ' => 'Ĩ',
|
||
'ĩ' => 'ĩ',
|
||
'Ī' => 'Ī',
|
||
'ī' => 'ī',
|
||
'Ĭ' => 'Ĭ',
|
||
'ĭ' => 'ĭ',
|
||
'Į' => 'Į',
|
||
'į' => 'į',
|
||
'İ' => 'İ',
|
||
'ı' => 'ı',
|
||
'Ɩ' => 'Ɩ',
|
||
'Ɨ' => 'Ɨ',
|
||
'Ǐ' => 'Ǐ',
|
||
'ǐ' => 'ǐ',
|
||
'Ȉ' => 'Ȉ',
|
||
'ȉ' => 'ȉ',
|
||
'Ȋ' => 'Ȋ',
|
||
'ȋ' => 'ȋ',
|
||
|
||
'IJ' => 'IJ',
|
||
'ij' => 'ij',
|
||
'Ĵ' => 'Ĵ',
|
||
'ĵ' => 'ĵ',
|
||
'ǰ' => 'ǰ',
|
||
'Ɉ' => 'Ɉ',
|
||
'ɉ' => 'ɉ',
|
||
|
||
'Ķ' => 'Ķ',
|
||
'ķ' => 'ķ',
|
||
'ĸ' => 'ĸ',
|
||
'Ƙ' => 'Ƙ',
|
||
'ƙ' => 'ƙ',
|
||
'Ǩ' => 'Ǩ',
|
||
'ǩ' => 'ǩ',
|
||
|
||
'ƚ' => 'ƚ',
|
||
|
||
'ƛ' => 'ƛ',
|
||
|
||
'Ɯ' => 'Ɯ',
|
||
|
||
'Ĺ' => 'Ĺ',
|
||
'ĺ' => 'ĺ',
|
||
'Ļ' => 'Ļ',
|
||
'ļ' => 'ļ',
|
||
'Ľ' => 'Ľ',
|
||
'ľ' => 'ľ',
|
||
'Ŀ' => 'Ŀ',
|
||
'ŀ' => 'ŀ',
|
||
'Ł' => 'Ł',
|
||
'ł' => 'ł',
|
||
'ȴ' => 'ȴ',
|
||
'Ƚ' => 'Ƚ',
|
||
|
||
'Ñ' => 'Ñ',
|
||
'ñ' => 'ñ',
|
||
'Ń' => 'Ń',
|
||
'ń' => 'ń',
|
||
'Ņ' => 'Ņ',
|
||
'ņ' => 'ņ',
|
||
'Ň' => 'Ň',
|
||
'ň' => 'ň',
|
||
'ʼn' => 'ʼn',
|
||
'Ŋ' => 'Ŋ',
|
||
'ŋ' => 'ŋ',
|
||
'Ɲ' => 'Ɲ',
|
||
'ƞ' => 'ƞ',
|
||
'Ǹ' => 'Ǹ',
|
||
'ǹ' => 'ǹ',
|
||
'Ƞ' => 'Ƞ',
|
||
'ȵ' => 'ȵ',
|
||
|
||
'Ò' => 'Ò',
|
||
'ò' => 'ò',
|
||
'Ó' => 'Ó',
|
||
'ó' => 'ó',
|
||
'Ô' => 'Ô',
|
||
'ô' => 'ô',
|
||
'Õ' => 'Õ',
|
||
'õ' => 'õ',
|
||
'Ö' => 'Ö',
|
||
'ö' => 'ö',
|
||
'Ō' => 'Ō',
|
||
'ō' => 'ō',
|
||
'Ŏ' => 'Ŏ',
|
||
'ŏ' => 'ŏ',
|
||
'Ő' => 'Ő',
|
||
'ő' => 'ő',
|
||
'Ɵ' => 'Ɵ',
|
||
'Ơ' => 'Ơ',
|
||
'ơ' => 'ơ',
|
||
'Ǒ' => 'Ǒ',
|
||
'ǒ' => 'ǒ',
|
||
'Ȍ' => 'Ȍ',
|
||
'ȍ' => 'ȍ',
|
||
'Ȏ' => 'Ȏ',
|
||
'ȏ' => 'ȏ',
|
||
'Ȣ' => 'Ȣ',
|
||
'ȣ' => 'ȣ',
|
||
'Ȫ' => 'Ȫ',
|
||
'ȫ' => 'ȫ',
|
||
'Ȭ' => 'Ȭ',
|
||
'ȭ' => 'ȭ',
|
||
'Ȯ' => 'Ȯ',
|
||
'ȯ' => 'ȯ',
|
||
'Ȱ' => 'Ȱ',
|
||
'ȱ' => 'ȱ',
|
||
|
||
|
||
'Þ' => 'Þ',
|
||
'þ' => 'þ',
|
||
'Ƣ' => 'Ƣ',
|
||
'ƣ' => 'ƣ',
|
||
'Ƥ' => 'Ƥ',
|
||
'ƥ' => 'ƥ',
|
||
|
||
'Ǫ' => 'Ǫ',
|
||
'ǫ' => 'ǫ',
|
||
'Ǭ' => 'Ǭ',
|
||
'ǭ' => 'ǭ',
|
||
'ȹ' => 'ȹ',
|
||
'Ɋ' => 'Ɋ',
|
||
'ɋ' => 'ɋ',
|
||
|
||
'Œ' => 'Œ',
|
||
'œ' => 'œ',
|
||
|
||
'Æ' => 'Æ',
|
||
'æ' => 'æ',
|
||
|
||
'Ŕ' => 'Ŕ',
|
||
'ŕ' => 'ŕ',
|
||
'Ŗ' => 'Ŗ',
|
||
'ŗ' => 'ŗ',
|
||
'Ř' => 'Ř',
|
||
'ř' => 'ř',
|
||
'Ʀ' => 'Ʀ',
|
||
'Ȑ' => 'Ȑ',
|
||
'ȑ' => 'ȑ',
|
||
'Ȓ' => 'Ȓ',
|
||
'ȓ' => 'ȓ',
|
||
'Ɍ' => 'Ɍ',
|
||
'ɍ' => 'ɍ',
|
||
|
||
'Ś' => 'Ś',
|
||
'ś' => 'ś',
|
||
'Ŝ' => 'Ŝ',
|
||
'ŝ' => 'ŝ',
|
||
'Ş' => 'Ş',
|
||
'ş' => 'ş',
|
||
'Š' => 'Š',
|
||
'š' => 'š',
|
||
'Ƨ' => 'Ƨ',
|
||
'ƨ' => 'ƨ',
|
||
'Ș' => 'Ș',
|
||
'ș' => 'ș',
|
||
'ȿ' => 'ȿ',
|
||
|
||
'Ʃ' => 'Ʃ',
|
||
'ƪ' => 'ƪ',
|
||
|
||
'Ţ' => 'Ţ',
|
||
'ţ' => 'ţ',
|
||
'Ť' => 'Ť',
|
||
'ť' => 'ť',
|
||
'Ŧ' => 'Ŧ',
|
||
'ŧ' => 'ŧ',
|
||
'ƫ' => 'ƫ',
|
||
'Ƭ' => 'Ƭ',
|
||
'ƭ' => 'ƭ',
|
||
'Ʈ' => 'Ʈ',
|
||
'Ț' => 'Ț',
|
||
'ț' => 'ț',
|
||
'ȶ' => 'ȶ',
|
||
'Ⱦ' => 'Ⱦ',
|
||
|
||
'Ù' => 'Ù',
|
||
'ù' => 'ù',
|
||
'Ú' => 'Ú',
|
||
'ú' => 'ú',
|
||
'Û' => 'Û',
|
||
'û' => 'û',
|
||
'Ü' => 'Ü',
|
||
'ü' => 'ü',
|
||
'Ũ' => 'Ũ',
|
||
'ũ' => 'ũ',
|
||
'Ū' => 'Ū',
|
||
'ū' => 'ū',
|
||
'Ŭ' => 'Ŭ',
|
||
'ŭ' => 'ŭ',
|
||
'Ů' => 'Ů',
|
||
'ů' => 'ů',
|
||
'Ű' => 'Ű',
|
||
'ű' => 'ű',
|
||
'Ų' => 'Ų',
|
||
'ų' => 'ų',
|
||
'Ư' => 'Ư',
|
||
'ư' => 'ư',
|
||
'Ʊ' => 'Ʊ',
|
||
'Ʋ' => 'Ʋ',
|
||
'Ǔ' => 'Ǔ',
|
||
'ǔ' => 'ǔ',
|
||
'Ǖ' => 'Ǖ',
|
||
'ǖ' => 'ǖ',
|
||
'Ǘ' => 'Ǘ',
|
||
'ǘ' => 'ǘ',
|
||
'Ǚ' => 'Ǚ',
|
||
'ǚ' => 'ǚ',
|
||
'Ǜ' => 'Ǜ',
|
||
'ǜ' => 'ǜ',
|
||
'Ȕ' => 'Ȕ',
|
||
'ȕ' => 'ȕ',
|
||
'Ȗ' => 'Ȗ',
|
||
'ȗ' => 'ȗ',
|
||
'Ʉ' => 'Ʉ',
|
||
|
||
'Ʌ' => 'Ʌ',
|
||
|
||
'Ŵ' => 'Ŵ',
|
||
'ŵ' => 'ŵ',
|
||
|
||
|
||
'Ý' => 'Ý',
|
||
'ý' => 'ý',
|
||
'ÿ' => 'ÿ',
|
||
'Ŷ' => 'Ŷ',
|
||
'ŷ' => 'ŷ',
|
||
'Ÿ' => 'Ÿ',
|
||
'Ƴ' => 'Ƴ',
|
||
'ƴ' => 'ƴ',
|
||
'Ȳ' => 'Ȳ',
|
||
'ȳ' => 'ȳ',
|
||
'Ɏ' => 'Ɏ',
|
||
'ɏ' => 'ɏ',
|
||
|
||
'Ź' => 'Ź',
|
||
'ź' => 'ź',
|
||
'Ż' => 'Ż',
|
||
'ż' => 'ż',
|
||
'Ž' => 'Ž',
|
||
'ž' => 'ž',
|
||
'ſ' => 'ſ',
|
||
'Ƶ' => 'Ƶ',
|
||
'ƶ' => 'ƶ',
|
||
'Ȥ' => 'Ȥ',
|
||
'ȥ' => 'ȥ',
|
||
'ɀ' => 'ɀ',
|
||
];
|
||
}
|