PHP用星号隐藏部份用户名、身份证、IP、手机号等实例


Posted in PHP onApril 08, 2014

一、仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用。

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 - 插入而非替换

使用实例:

[code]

echo strlen($idcard)==15?substr_replace($idcard,"****",8,4):(strlen($idcard)==18?substr_replace($idcard,"****",10,4):"身份证位数不正常!");

[/code]

三、将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);

    }

}

另外,关于身份证号验证本站还提供了身份证归属地查询工具如下:

PHP 相关文章推荐
PHP 中的批处理的实现
Jun 14 PHP
php URL编码解码函数代码
Mar 10 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
PHP写的简单数字验证码实例
May 23 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
实例分析10个PHP常见安全问题
Jul 09 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 PHP
php实现telnet功能示例
Apr 08 #PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 #PHP
php实现水仙花数的4个示例分享
Apr 08 #PHP
php命令行使用方法和命令行参数说明
Apr 08 #PHP
php实现httpclient类示例
Apr 08 #PHP
php使用json_encode对变量json编码
Apr 07 #PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 #PHP
You might like
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
详解js中==与===的区别
2017/01/08 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
使用Python解析JSON数据的基本方法
2015/10/15 Python
Python函数式编程
2017/07/20 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python生成lmdb格式的文件实例
2018/11/08 Python
python实现共轭梯度法
2019/07/03 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
什么是python的函数体
2020/06/19 Python
sklearn的predict_proba使用说明
2020/06/28 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
文秘专业应届生求职信范文
2013/11/14 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
教师师德承诺书2016
2016/03/25 职场文书
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python