您好,欢迎访问一九零五行业门户网

PHP用星号隐藏部份用户名、身份证、IP、手机号等实例_PHP教程

一、仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用。
复制代码 代码如下:
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        {
            if($i>=$start && $i            {
                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)        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最后一位替换为星号 代码如下:
方法一:
复制代码 代码如下:
方法二:
复制代码 代码如下:
四、手机号中间用*星号隐藏的方法五则
复制代码 代码如下:
//方法一
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);
    }
}
http://www.bkjia.com/phpjc/750856.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/750856.htmltecharticle一、仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用。 复制代码 代码如下: function cut_str($string, $sublen, $start = 0, $code = 'utf-8') { if...
其它类似信息

推荐信息