PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
发布:smiling 来源: PHP粉丝网 添加日期:2020-11-07 11:45:39 浏览: 评论:0
这篇文章主要介绍了PHP用星号隐藏部份用户名、身份证、IP、手机号等实例,需要的朋友可以参考下。
一、仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用,代码如下:
- function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
- {
- if($code == 'UTF-8')
- {
- $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
- preg_match_all($pa, $string, $t_string);
- if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
- return join('', array_slice($t_string[0], $start, $sublen));
- }
- else
- {
- $start = $start*2;
- $sublen = $sublen*2;
- $strlen = strlen($string);
- $tmpstr = '';
- for($i=0; $i< $strlen; $i++)
- {
- if($i>=$start && $i< ($start+$sublen))
- {
- if(ord(substr($string, $i, 1))>129)
- {
- $tmpstr.= substr($string, $i, 2);
- }
- else
- {
- $tmpstr.= substr($string, $i, 1);
- }
- }
- if(ord(substr($string, $i, 1))>129) $i++;
- }
- //if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
- return $tmpstr;
- }
- }
使用示例:
- $str = "如来神掌";
- echo cut_str($str, 1, 0).'**'.cut_str($str, 1, -1);
- //输出:如**掌
二、PHP身份证号后4位用星号隐藏
一个很简单的问题,想把身份证的号生日的4位隐藏,一开始查函数居然没有看到,然后用了好几个函数处理,觉得太麻烦就上网搜,后来发现有一个函数就能直接处理,所以记录一下:
substr_replace()函数简介:
定义和用法
substr_replace() 函数把字符串的一部分替换为另一个字符串。
语法
substr_replace(string,replacement,start,length)
参数 描述
string 必需。规定要检查的字符串。
replacement
必需。规定要插入的字符串。
start
必需。规定在字符串的何处开始替换。
正数 - 在第 start 个偏移量开始替换
负数 - 在从字符串结尾的第 start 个偏移量开始替换
0 - 在字符串中的第一个字符处开始替换
length
可选。规定要替换多少个字符。
正数 - 被替换的字符串长度
负数 - 从字符串末端开始的被替换字符数
0 - 插入而非替换
使用实例:
- echo strlen($idcard)==15?substr_replace($idcard,"****",8,4):(strlen($idcard)==18?substr_replace($idcard,"****",10,4):"身份证位数不正常!");
三、将IP最后一位替换为星号
将IP最后一位替换为星号 代码如下:
方法一:
- <?php
- str = '1.1.1.1';
- reg = '/((?:\d+\.){3})\d+/';
- echo preg_replace(reg, "\\1*", str);
- ?>
方法二:
- <?php
- $ip =$_SERVER['REMOTE_ADDR'];
- $ip_arr= explode('.', $ip);
- $ip_arr[3]='*';
- $ip= implode('.', $ip_arr);
- echo $ip;
- ?>
四、手机号中间用*星号隐藏的方法五则,代码如下:
- //方法一
- function mobile_asterisk($mobile)
- {
- $mobile_asterisk = substr($mobile,0,4)."****".substr($mobile,8,3);
- return $mobile_asterisk;
- }
- echo mobile_asterisk("15810904579");
- //方法二
- echo preg_replace("/(1\d{1,4})\d\d\d\d(\d{3,4})/", "\$1****\$2", "15810904579");
- //方法三
- $haoma="15012345678";
- echo preg_replace("/(d{3})d{5}/","$1*****",$haoma);
- //输出150*****678
- //方法四
- $tel1 = "13888111188";
- $tel2 = "+8613888111188";
- $tel3 = "0861088111188";
- $tel4 = "086-010-88111188";
- echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel1),"\n";
- echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel2),"\n";
- echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel3),"\n";
- echo preg_replace('/(^.*)\d{4}(\d{4})$/','\\1****\\2',$tel4),"\n";
- //方法五
- //屏蔽电话号码中间的四位数字
- function hidtel($phone)
- {
- $IsWhat = preg_match('/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)/i',$phone); //固定电话
- if($IsWhat == 1)
- {
- return preg_replace('/(0[0-9]{2,3}[\-]?[2-9])[0-9]{3,4}([0-9]{3}[\-]?[0-9]?)/i','$1****$2',$phone);
- }
- else
- {
- return preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
- }
- }
Tags: PHP隐藏用户名
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)