Home >Backend Development >PHP Problem >How to replace asterisk in Chinese in php
php method to replace asterisks with Chinese: 1. Determine whether the characters contain Chinese characters; 2. Use the mb_substr function to replace the specified Chinese part with asterisks.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
How to replace asterisks in Chinese in php?
PHP user names are processed with asterisks
PHP user names are processed with * signs:
User names: English, Chinese, mixed Chinese and English, Chinese and English The
processing of mixed characters is as follows: the first letter and the end are retained, and the middle is replaced by an * (one character is displayed directly, two characters: Zhang*, three or more characters: Song*Dan)
First determine whether the characters contain Chinese characters, and if so, use the mb_ series of functions (the Chinese here uses UTF-8 format)
UTF-8 Chinese regular: "/[\x{4e00} -\x{9fa5}] /u"
GB2312 Chinese regular: "/[".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) . '*'; } }
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to replace asterisk in Chinese in php. For more information, please follow other related articles on the PHP Chinese website!