声明:此文为「原创首发」
前几天我发表了一片《php 开发中手机号和银行账号等私密字段替代方法,你学会了吗?1》
然后评论中有一位同仁提出了一个更简单的方法。
感谢这位ID为用户2427556790233的朋友,今天我们就按照他提出的方法,继续实现手机号和银行账号等私密字段的某部分字符替代方法。
首先呢,我们定义一个变量,当然这变量是你们随意定义都OK,但是一定是字符串。
$str = "13256568787"
然后我们用 substr () 函数来获取变量的某一段;
我们先获取变量的前三位数
$str_start = substr($str,0,3);
其中substr()的第一位参数就是我们定义的变量值,地二个参数就是指,我们要从第一个参数的哪个下标开始获取,第三个参数指的是,我们要获取的字符串长度。
接下来我们再获取后面的四位数值
$str_end = substr($str,-4,4);
其中substr()的第一位参数就是我们定义的变量值,地而个参数就是指,我们要从第一个参数的倒数第四位开始获取,第三个参数指的是,我们要获取的字符串长度。
这里大家可以看的出来substr()函数的用法了吧?
这样我们就能获取到前面和后面的字符串了,现在我们需要将字符串连接起来
$mobile = $str_start."****".$str_end;
这里用到的是和PHP 字符串连接方法 . PHP的字符串连接必须用一个 点 . 连接起来。
我们在TP5 里面定义个方法:
public function replace(){ $str = "13256568787"; $str_start = substr($str,0,3); $str_end = substr($str,-4,4); $mobile = $str_start."****".$str_end; echo $mobile;}
接下来,就是见证奇迹的时刻了,我们打来浏览器,输入路径
http://tp5.com/index/index/replace
显示出来的效果和我们之前的一样的。
这里我们在回顾一下之前的代码1
public function replace(){ $bank_num = '6230004952801100578'; $bank_num = substr_replace($bank_num, '***YY*',5, 6); echo $bank_num;}
执行的效果1
这里我们在回顾一下之前的代码2
public function replace(){ $phone = '13812345678'; $phone = preg_replace('/(1[0-9]{2})[0-9]{4}([0-9]{4})/i','$1****$2',$phone); echo $phone;}
执行的效果2
对比这三种方法,大家觉得哪个方法好呢?喜欢 的朋友点赞一下,关注支持一下。