一、仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用。复制代码 代码如下: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最后一位替换为星号 代码如下:方法一:复制代码 代码如下:<?phpstr = "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("/(1d{1,4})dddd(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),"";echo preg_replace("/(^.*)d{4}(d{4})$/","\1****\2",$tel2),"";echo preg_replace("/(^.*)d{4}(d{4})$/","\1****\2",$tel3),"";echo preg_replace("/(^.*)d{4}(d{4})$/","\1****\2",$tel4),"";

//方法五//屏蔽电话号码中间的四位数字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);    }}

另外,关于身份证号验证本站还提供了身份证归属地查询工具如下:

http://tools.jb51.net/bianmin/sfz