首頁 >後端開發 >PHP問題 >php怎麼將中文替換星號

php怎麼將中文替換星號

藏色散人
藏色散人原創
2021-10-19 09:16:192636瀏覽

php將中文取代星號的方法:1、判斷字元中是否包含中文字元;2、使用mb_substr函數將指定中文部分以星號取代即可。

php怎麼將中文替換星號

本文操作環境:windows7系統、PHP7.1版、DELL G3電腦

php怎麼將中文取代星號?

PHP用戶名用星號處理

PHP用戶名用*號處理:

用戶名:英文、中文、中英文混合的、中英文字元混合的

處理為:首字母和結尾保留,中間用*號代替(一個字元直接顯示,兩個字元:張*,三個以上字元:宋*丹)

#首先判斷字符中是否包含中文字符,如果有使用mb_ 系列函數處理(這裡的中文使用的是UTF-8格式的)

UTF-8中文正則:"/[\x{4e00} -\x{9fa5}] /u"

GB2312中文正規:"/[".chr(0xa1)."-".chr(0xff)."] /"

 //判断是否包含中文字符
if(preg_match("/[\x{4e00}-\x{9fa5}]+/u", $str)) {
    //按照中文字符计算长度
    $len = mb_strlen($str, 'UTF-8');
    //echo '中文';
    if($len >= 3){
        //三个字符或三个字符以上掐头取尾,中间用*代替
        $str = mb_substr($str, 0, 1, 'UTF-8') . '*' . mb_substr($str, -1, 1, 'UTF-8');
    } elseif($len == 2) {
        //两个字符
        $str = mb_substr($str, 0, 1, 'UTF-8') . '*';
    }
} else {
    //按照英文字串计算长度
    $len = strlen($str);
    //echo 'English';
    if($len >= 3) {
        //三个字符或三个字符以上掐头取尾,中间用*代替
        $str = substr($str, 0, 1) . '*' . substr($str, -1);
    } elseif($len == 2) {
        //两个字符
        $str = substr($str2, 0, 1) . '*';
    }
}

推薦學習:《PHP影片教學

以上是php怎麼將中文替換星號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn