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中for循环语句的几种变型
Nov 26 PHP
php框架Phpbean说明
Jan 10 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
PHP缓存技术的使用说明
Aug 06 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
Laravel实现批量更新多条数据
Apr 06 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 文件类型判断代码
2009/03/13 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
如何在PHP中生成随机数
2020/06/04 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
ExtJS 入门
2010/10/29 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python实现的jpg格式图片修复代码
2015/04/21 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
Django在win10下的安装并创建工程
2017/11/20 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
python爬取网页转换为PDF文件
2018/06/07 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
质检员岗位职责
2013/12/17 职场文书
自荐书4要点
2014/01/25 职场文书
2014元旦晚会策划方案
2014/02/19 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书