Sas*_*dar 2 php transliteration
你好,我有这个函数,可以用拉丁字符替换希腊字符
\nfunction greeklish($Name) \n{ \n$greek = array('\xce\xb1','\xce\xac','\xce\x86','\xce\x91','\xce\xb2','\xce\x92','\xce\xb3', '\xce\x93', '\xce\xb4','\xce\x94','\xce\xb5','\xce\xad','\xce\x95','\xce\x88','\xce\xb6','\xce\x96','\xce\xb7','\xce\xae','\xce\x97','\xce\xb8','\xce\x98','\xce\xb9','\xce\xaf','\xcf\x8a','\xce\x90','\xce\x99','\xce\x8a', '\xce\xba','\xce\x9a','\xce\xbb','\xce\x9b','\xce\xbc','\xce\x9c','\xce\xbd','\xce\x9d','\xce\xbe','\xce\x9e','\xce\xbf','\xcf\x8c','\xce\x9f','\xce\x8c','\xcf\x80','\xce\xa0','\xcf\x81','\xce\xa1','\xcf\x83','\xcf\x82', '\xce\xa3','\xcf\x84','\xce\xa4','\xcf\x85','\xcf\x8d','\xce\xa5','\xce\x8e','\xcf\x86','\xce\xa6','\xcf\x87','\xce\xa7','\xcf\x88','\xce\xa8','\xcf\x89','\xcf\x8e','\xce\xa9','\xce\x8f',' ',"'","'",','); \n$english = array('a', 'a','A','A','b','B','g','G','d','D','e','e','E','E','z','Z','i','i','I','th','Th', 'i','i','i','i','I','I','k','K','l','L','m','M','n','N','x','X','o','o','O','O','p','P' ,'r','R','s','s','S','t','T','u','u','Y','Y','f','F','ch','Ch','ps','Ps','o','o','O','O','_','_','_','_'); \n$string = str_replace($greek, $english, $Name); \nreturn $string; \n} \necho greeklish("\xce\xa4\xce\xbf \xce\xb5\xce\xbb\xce\xbb\xce\xb7\xce\xbd\xce\xb9\xce\xba\xcf\x8c \xce\xba\xce\xb5\xce\xaf\xce\xbc\xce\xb5\xce\xbd\xce\xbf \xce\xb5\xce\xb4\xcf\x8e");\nRun Code Online (Sandbox Code Playgroud)\n我想知道是否有一种快速方法可以修改此函数,以便替换/删除在数组中$Name不存在的任何字符$greek''
更新
\n我忘了提到,在希腊,有一种打字方法(主要在年轻人中使用),他们使用拉丁字符输入希腊单词。也没有标准的东西,例如:
\n'\xce\xb5\xce\xb9' '\xcf\x85' '\xce\xb9' '\xce\xbf\xce\xb9' '\xce\xb7'听起来像'e'
'\xce\xb8'可以写成'th'或'8'甚至'3'
所以这个转换需要一个自定义算法。
\n我建议这样:
$regex = sprintf('/[^%s]/u', preg_quote(join($greek), '/'));
$string = preg_replace($regex, '', $string);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |