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与XML的PDF文档生成技术
Oct 09 PHP
PHP聊天室技术
Oct 09 PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
php递归json类实例
Dec 02 PHP
初识laravel5
Mar 02 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 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
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
深入PHP内存相关的功能特性详解
2013/06/08 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
菊花转动的jquery加载动画效果
2018/08/19 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
工程造价与管理专业应届生求职信
2013/11/23 职场文书
家长会学生家长演讲稿
2013/12/29 职场文书
五年级学生评语
2014/04/22 职场文书
廉政教育的心得体会
2014/09/01 职场文书
介绍信的写法
2015/01/31 职场文书