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 相关文章推荐
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
PHP教程 预定义变量
Oct 23 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
深入array multisort排序原理的详解
Jun 18 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
linux下为php添加iconv模块的方法
Feb 28 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
js全选按钮的实现方法
2015/11/17 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python实现的文件同步服务器实例
2015/06/02 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
python selenium循环登陆网站的实现
2019/11/04 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python实现分数序列求和
2020/02/25 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
工地安全标语
2014/06/07 职场文书
节能标语大全
2014/06/21 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
教师节横幅标语
2014/10/08 职场文书
先进工作者申报材料
2014/12/23 职场文书
老公保证书
2015/01/17 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Linux安装Docker详细教程
2022/07/07 Servers