2011-08-16 38 views
0

字母FR有例如:é和英文字母GER有:ö等 如何清除所有字符在键盘上的ALT? 我可以使用:如何通过ALT跳过所有的字符

$addr = strtr($addr, "äåö", "aao"); 

但我不知道所有的字母。

+4

不!使用utf-8编码所有编码。 – 2011-08-16 23:54:26

回答

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/

1

也许一个简单的解决方案:

$output = preg_replace("/[^A-Za-z0-9]/","",$input); 
+0

我认为OP希望删除重音符(äáàāąãåâ=> a),而不是删除这些字符。 – nandhp

3

如果你知道你输入的字符集,你想削减只能到ASCII设置,您可以使用iconv。假设您的输入是UTF-8:

$text = "äåö"; 
echo iconv('UTF-8', 'ASCII//TRANSLIT', $text); 

此示例将输出aao

请注意,iconv有时会遇到无粗略ASCII等值字符(尽管这种行为似乎近期有所改善)时会变脆。