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排序之二维数组的按照字母排序实现代码
Aug 13 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
Joomla开启SEF的方法
May 04 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
php修改word的实例方法
Nov 17 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提高编程效率的20个要点
2015/09/23 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python中的编码知识整理汇总
2016/01/26 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
党员学习十八大感想
2014/01/17 职场文书
居住证明范文
2015/06/17 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技