场景:展示手机号时,避免暴露隐私信息,因此需要给手机号加*号
代码
/*** 手机号码隐私加星* @param string $mobile 手机号*/
function mobileToStar(string $mobile)
{ // 正则检测手机号if(!preg_match('/^1[3456789]\d{9}$/',$mobile)){// 手机格式错误return false;}// 粗暴法// $mobile[4] = "*";// $mobile[5] = "*";// $mobile[6] = "*";// $mobile[7] = "*";// return $mobile;// 截取替换法// $mobile_arr = str_split($mobile , 4); // 4个字符 1个字符串,切割 最后长度3// $mobile_arr[1] = '****'; // 把中间4个用* 代替// return implode($mobile_arr);// 直接替换法// return substr_replace($mobile , '****' , 4,4);// 字符串截取法$start_str = substr($mobile , 0 , 4);// 从0位开始截取,取4个字符$in_str = str_pad('',4,'*'); // 设置 * 号$end_str = substr($mobile , 8 , 4); // 结束部分 从第8位开始截取,取4个return $start_str . $in_str. $end_str;
}
输出
var_dump(mobileToStar('13112346458'));
// string(11) "1311****458"