例如:é和字母GER有:ö等 怎么能在键盘上用ALT清除所有字符? 我可以用:
$addr = strtr($addr, "äåö", "aao");
但我不知道所有的字母表。
答案 0 :(得分:3)
如果您知道输入字符集,并且只想削减ASCII设置,则可以使用iconv
。假设您的输入是UTF-8:
$text = "äåö";
echo iconv('UTF-8', 'ASCII//TRANSLIT', $text);
此示例将输出aao
。
请注意iconv
在面对没有粗略ASCII等效字符的字符时有时会很脆弱(虽然这种行为似乎最近有所改善)。
答案 1 :(得分:2)
我会假设你想要一个给出问题标签的PHP答案。这似乎涵盖了我知道/听到的所有这些
$text = "Yôûr téxt wíth àccènts :)";
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
$text = str_replace($search, $replace, $text);
来源:http://www.randomsequence.com/articles/removing-accented-utf-8-characters-with-php/
答案 2 :(得分:1)
也许是一个更简单的解决方案:
$output = preg_replace("/[^A-Za-z0-9]/","",$input);