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 相关文章推荐
2.PHP入门
Oct 09 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
PHP url 加密解密函数代码
Aug 26 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
解析使用ThinkPHP应该掌握的调试手段
Jun 20 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 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
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
帝国cms目录结构分享
2015/07/06 PHP
php算法实例分享
2015/07/14 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
工作需要写的一个js拖拽组件
2011/07/28 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
vue项目接口域名动态获取操作
2020/08/13 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
Python存取XML的常见方法实例分析
2017/03/21 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python样条插值的实现代码
2018/12/17 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
运动会广播稿400字
2014/01/25 职场文书
企业年会主持词
2014/03/27 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
活着观后感
2015/06/03 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
关于Python使用turtle库画任意图的问题
2022/04/01 Python