zl程序教程

您现在的位置是:首页 >  后端

当前栏目

php字符串处理之全角半角转换

PHP转换 处理 字符串 全角 半角
2023-09-27 14:21:27 时间

全角是历史遗留问题,能修复尽量修复

半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路。

/**
 * Notes:全角 半角相互转化
 * @param $str
 * @param $type string  TODBC 半角到全角 | TOSBC 全角到半角
 */
function convertStrType($str, $type = 'TOSBC')
{
    $dbc = array(
        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', ' ', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '', '',

        '', '', '', '_', '',

        '', '', ''
    );
    $sbc = array( //半角

        '0', '1', '2', '3', '4',

        '5', '6', '7', '8', '9',

        'A', 'B', 'C', 'D', 'E',

        'F', 'G', 'H', 'I', 'J',

        'K', 'L', 'M', 'N', 'O',

        'P', 'Q', 'R', 'S', 'T',

        'U', 'V', 'W', 'X', 'Y',

        'Z', 'a', 'b', 'c', 'd',

        'e', 'f', 'g', 'h', 'i',

        'j', 'k', 'l', 'm', 'n',

        'o', 'p', 'q', 'r', 's',

        't', 'u', 'v', 'w', 'x',

        'y', 'z', '-', ' ', ':',

        '.', ',', '/', '%', ' #',

        '!', '@', '&', '(', ')',

        '<', '>', '"', '\'', '?',

        '[', ']', '{', '}', '\\',

        '|', '+', '=', '_', '^',

        '', '~', '`'

    );

    if($type == 'TODBC'){ //半角到全角
        return str_replace( $sbc, $dbc, $str );
    }elseif($type == 'TOSBC'){ //全角到半角
        return str_replace( $dbc, $sbc, $str );
    }else{
        return $str;
    }
}