为了账号安全,请及时绑定邮箱和手机立即绑定

替换重音字符php

替换重音字符php

PHP
达令说 2019-07-20 12:49:56
替换重音字符php我试图用普通的替换重音字符。下面是我目前正在做的事情。    $string = "Éric Cantona";     $strict = strtolower($string);     echo "After Lower: ".$strict;     $patterns[0] = '/[á|â|à|å|ä]/';     $patterns[1] = '/[ð|é|ê|è|ë]/';     $patterns[2] = '/[í|î|ì|ï]/';     $patterns[3] = '/[ó|ô|ò|ø|õ|ö]/';     $patterns[4] = '/[ú|û|ù|ü]/';     $patterns[5] = '/æ/';     $patterns[6] = '/ç/';     $patterns[7] = '/ß/';     $replacements[0] = 'a';     $replacements[1] = 'e';     $replacements[2] = 'i';     $replacements[3] = 'o';     $replacements[4] = 'u';     $replacements[5] = 'ae';     $replacements[6] = 'c';     $replacements[7] = 'ss';     $strict = preg_replace($patterns, $replacements, $strict);     echo "Final: ".$strict;这给了我:    After Lower: éric cantona    Final: ric cantona以上给了我ric cantona我希望输出是eric cantona.有人能帮我解决问题吗?
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞


我尝试过各种基于答案中所列变体的方法,但以下几种方法奏效了:


$unwanted_array = array(    'Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',

                            'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U',

                            'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c',

                            'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o',

                            'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y' );

$str = strtr( $str, $unwanted_array );


查看完整回答
反对 回复 2019-07-20
?
噜噜哒

TA贡献1784条经验 获得超7个赞

若要删除diacritics,请使用iconv:

$val = iconv('ISO-8859-1','ASCII//TRANSLIT',$val);

$val = iconv('UTF-8','ASCII//TRANSLIT',$val);

请注意,php有一些奇怪的错误(有时?)需要设置区域设置,以便使用setlocale()实现这些转换。

编辑刚刚测试过了从盒子里拿出你的音符:

$val = "á|â|à|å|ä ð|é|ê|è|ë í|î|ì|ï ó|ô|ò|ø|õ|ö ú|û|ù|ü æ ç ß abc ABC 123";echo iconv('UTF-8','ASCII//TRANSLIT',$val);

产出:

a|a|a|a|a ?|e|e|e|e i|i|i|i o|o|o|?|o|o u|u|u|u ae c ss abc ABC 123

因此,您可能


查看完整回答
反对 回复 2019-07-20
  • 3 回答
  • 0 关注
  • 435 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信