字符串全角半角转换

来源:互联网 发布:电工证模拟考试软件 编辑:程序博客网 时间:2024/06/05 02:58
/** * 字符串全角半角转换 * @param $str ,带转换字符串 * @param int $flag ,0|1 $flag=0半角转全角,$flag = 1 全角转半角, * @return string  字符串 */function strFullHalf($str, $flag = 0){    $str = trim($str);    if (empty($str)) return '';    $quan = 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',        '-', ' ', ':', '.', ',', '/', '%', '#', '!', '@',        '&', '(', ')', '<', '>', '"', ''', '?', '[', ']',        '{', '}', '\', '|', '+', '=', '_', '^', '¥', ' ̄', '`'    );    $ban = 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 ($flag == 1) {        //全角转半角        foreach ($quan as $k => $v) {            if (preg_match("/$v/", $str)) {                $str = preg_replace("/$v/", $ban[$k], $str);            }        }    } else {        //半角转全角        $a = array('$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', "{", "}", '|', '/',);        foreach ($ban as $k => $v) {            if (!preg_match('/[0-9a-zA-Z]/', $v)) {                if (in_array($v, $a)) {                    if (preg_match("/\\$v/", $str)) {                        $str = preg_replace("/\\$v/", $quan[$k], $str);                    }                } else {                    if (preg_match("/$v/", $str)) {                        $str = preg_replace("/$v/", $quan[$k], $str);                    }                }            }        }    }    return $str;}
原创粉丝点击