推荐:《PHP视频教程》
今天突然想起手机号,这种隐私信息在项目中还是隐藏一下比较好,所以就来总结一下能用的方法,仅限于大陆的11位手机号
方法演示
1.使用 substr_replace
函数
# substr_replace — 替换字符串的子串 # 使用说明 substr_replace ( mixed $string , mixed $replacement , mixed $start , mixed $length = ? ) : mixed # $string 资源字符串 # $replacement 替换字符 # $start 替换开始位置,如果位负数的时候,将从末尾开始数 # $length 需要替换的长度,如果为负数的时候,也是从$start开始位置替换 # substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。 # 示例 $mobile = '18512341234'; echo substr_replace($mobile, '****', 3, 4); // 185****1234 # 注意 字符串的开始位置为0 echo substr_replace($mobile, '****', -8, -4); // 185****1234
2.使用正则表达式
# preg_replace — 执行一个正则表达式的搜索和替换 # 使用说明 preg_replace ( mixed $pattern , mixed $replacement , mixed $subject , int $limit = -1 , int &$count = ? ) : mixed # 搜索 subject 中匹配 pattern 的部分,以 replacement 进行替换。 # 示例 $pattern = '/(\d{3})\d{4}(\d{4})/'; $new_mobile = preg_replace($pattern, '$1****$2', $mobile); echo $new_mobile;
3.使用 substr
函数
# 函数说明 substr ( string $string , int $start , int $length = ? ) : string # 返回字符串 string 由 start 和 length 参数指定的子字符串。 # 同 substr_replace 一样,start也可以为负数的 # 示例 echo substr($mobile, 0,3) . '****' . substr($mobile, 7,4); echo substr($mobile, 0,3) . '****' . substr($mobile, -4,4);
总结
方法有很多,多数情况是在情况选择那种更加合适.
The above is the detailed content of Practical explanation of how to hide the middle 4 digits of a mobile phone number in PHP. For more information, please follow other related articles on the PHP Chinese website!