如果你有PHPIntl extension 安装后,您可以使用精彩Transliterator class.
我得到了一些很好的结果,比如:
$t = Transliterator::create(\'Latin-Greek\', Transliterator::FORWARD );
var_dump( [
\'alfa\' => $t->transliterate(\'alfa\'),
\'alpha\' => $t->transliterate(\'alpha\'),
] );
这两种贪婪的形式给了我
"άλφα"
. 我不知道它怎么知道该把口音放在哪里,但它给人留下了深刻的印象。
一旦有了希腊语脚本,剩下的细微差别应该由数据库排序来处理。“α”将匹配“ά”,而“σ”甚至将匹配“ς”(这在我运行排序规则为utf8mb4\\U unicode\\U 520\\U ci的MySQL的系统上运行)
如果您没有这个扩展,或者底层ICU库不可用,那么您可以自己扩展字符,但音译是hard 所以我不推荐它。