【问题标题】:How to remove accent from characters? (Leave only English alphabet glyphs)如何去除字符的重音? (只留下英文字母字形)
【发布时间】:2011-11-29 18:24:43
【问题描述】:

我需要在 PHP 中转换一个特殊字符,如ă -> aâ -> aț -> t 等。

我特别需要这个链接,所以任何帮助都将不胜感激。

【问题讨论】:

标签: php utf-8 character


【解决方案1】:

当我想获取纯文本(来自 utf-8)时,我使用 iconv

iconv('utf8', 'ascii//TRANSLIT', $text);

如果仅用于您的 url,则 urlencode 可能是一个更好的主意。

【讨论】:

  • 成功了,谢谢:('utf8', 'ascii//TRANSLIT', $text);问候。
  • 我认为 iconv() 是最好的解决方案。认真阅读它的文档!
【解决方案2】:

更新奥兰多的答案,我添加了一些更特殊的字符

function clean_special_chars ($s, $d=false) {
if($d) $s = utf8_decode( $s );

$chars = array(
    '_' => '/`|´|\^|~|¨|ª|º|©|®/',
    'a' => '/à|á|ả|ạ|ã|â|ầ|ấ|ẩ|ậ|ẫ|ă|ằ|ắ|ẳ|ặ|ẵ|ä|å|æ/',
    'd' => '/đ/',
    'e' => '/è|é|ẻ|ẹ|ẽ|ê|ề|ế|ể|ệ|ễ|ë/',
    'i' => '/ì|í|ỉ|ị|ĩ|î|ï/',
    'o' => '/ò|ó|ỏ|ọ|õ|ô|ồ|ố|ổ|ộ|ỗ|ö|ø/',
    'u' => '/ù|ú|û|ũ|ü|ů|ủ|ụ|ư|ứ|ừ|ữ|ử|ự/',
    'A' => '/À|Á|Ả|Ạ|Ã|Â|Ầ|Ấ|Ẩ|Ậ|Ẫ|Ă|Ằ|Ắ|Ẳ|Ặ|Ẵ|Ä|Å|Æ/',
    'D' => '/Đ/',
    'E' => '/È|É|Ẻ|Ẹ|Ẽ|Ê|Ề|Ế|Ể|Ệ|Ễ|Ê|Ë/',
    'I' => '/Ì|Í|Ỉ|Ị|Ĩ|Î|Ï/',
    'O' => '/Ò|Ó|Ỏ|Ọ|Õ|Ô|Ồ|Ố|Ổ|Ộ|Ỗ|Ö|Ø/',
    'U' => '/Ù|Ú|Û|Ũ|Ü|Ů|Ủ|Ụ|Ư|Ứ|Ừ|Ữ|Ử|Ự/',
    'c' => '/ć|ĉ|ç/',
    'C' => '/Ć|Ĉ|Ç/',
    'n' => '/ñ/',
    'N' => '/Ñ/',
    'y' => '/ý|ỳ|ỷ|ỵ|ỹ|ŷ|ÿ/',
    'Y' => '/Ý|Ỳ|Ỷ|Ỵ|Ỹ|Ŷ|Ÿ/'
);

return preg_replace( $chars, array_keys( $chars ), $s );
}

【讨论】:

    【解决方案3】:

    你可以用这个:

    function clean_special_chars( $s, $d=false )
    {
        if($d) $s = utf8_decode( $s );
    
        $chars = array(
        '_' => '/`|´|\^|~|¨|ª|º|©|®/',
        'a' => '/à|á|â|ã|ä|å|æ/', 
        'e' => '/è|é|ê|ë/', 
        'i' => '/ì|í|î|ĩ|ï/',   
        'o' => '/ò|ó|ô|õ|ö|ø/', 
        'u' => '/ù|ú|û|ű|ü|ů/', 
        'A' => '/À|Á|Â|Ã|Ä|Å|Æ/', 
        'E' => '/È|É|Ê|Ë/', 
        'I' => '/Ì|Í|Î|Ĩ|Ï/',   
        'O' => '/Ò|Ó|Ô|Õ|Ö|Ø/', 
        'U' => '/Ù|Ú|Û|Ũ|Ü|Ů/', 
        'c' => '/ć|ĉ|ç/', 
        'C' => '/Ć|Ĉ|Ç/', 
        'n' => '/ñ/', 
        'N' => '/Ñ/', 
        'y' => '/ý|ŷ|ÿ/', 
        'Y' => '/Ý|Ŷ|Ÿ/'
        );
    
    return preg_replace( $chars, array_keys( $chars ), $s );
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 2012-04-09
      • 2013-04-26
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 2016-02-27
      • 2012-01-24
      相关资源
      最近更新 更多