PHP手机号中间四位用星号*代替显示的实例

场景

在显示用户列表的场景中,一般用到手机号的显示时都需要对手机号进行处理,一般是把中间的四位换成星号****,
或电商网站,价格中,第2位会用?号替换

实现方法

<?php
$tel = '12345678910';
//1.字符串截取法
$new_tel1 = substr($tel, 0, 3).'****'.substr($tel, 7);
var_dump($new_tel1);
//2.替换字符串的子串
$new_tel2 = substr_replace($tel, '****', 3, 4);
var_dump($new_tel2);
//3.用正则
$new_tel3 = preg_replace('/(\d{3})\d{4}(\d{4})/', '$1****$2', $tel);
var_dump($new_tel3);
?>

得到

 string(11) "123****8910"
 string(11) "123****8910"
 string(11) "123****8910"

substr_replace函数

定义和用法

substr_replace() 函数把字符串的一部分替换为另一个字符串。

注释:如果 start 参数是负数且 length 小于或者等于 start,则 length 为 0。

注释:该函数是二进制安全的。

语法

substr_replace(string,replacement,start,length)

参数 描述
string 必需。规定要检查的字符串。
replacement 必需。规定要插入的字符串。
start 必需。规定在字符串的何处开始替换。正数 - 在字符串中的指定位置开始替换负数 - 在从字符串结尾的指定位置开始替换0 - 在字符串中的第一个字符处开始替换
length 可选。规定要替换多少个字符。默认是与字符串长度相同。正数 - 被替换的字符串长度 负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。0 - 插入而非替换

更多实例

例子 1:从第几位数开始替换

从字符串的第 6 个位置开始替换(把 “world” 替换成 “Shanghai”):

<?php
echo substr_replace("Hello world","Shanghai",6);
?>

在这里插入图片描述

例子 2:从末尾开始替换

从字符串结尾的第 5 个位置开始替换(把 “world” 替换成 “Shanghai”):

<?php
echo substr_replace("Hello world","Shanghai",-5);
?>

在这里插入图片描述

例子 3:插入开头的位置

在 “world” 开头插入 “Hello”:

<?php
echo substr_replace("world","Hello ",0,0);
?>

在这里插入图片描述

例子 4:批量替换

一次性替换多个字符串。把每个字符串中的 “AAA” 替换成 “BBB”:

<?php
$replace = array("1: AAA","2: AAA","3: AAA");
echo implode("<br>",substr_replace($replace,'BBB',3,3));
?>

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章