php用星号隐藏部份用户名、身份证、ip、手机号等。
专题:php星号显示与隐藏内容
一、仿淘宝评论购买记录隐藏部分用户名。
function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/||xe0||xf0|/";
preg_match_all($pa, $string, $t_string);
if(count($t_string) - $start > $sublen) return join('', array_slice($t_string, $start, $sublen));
return join('', array_slice($t_string, $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;
}
}
使用方法:
二、php身份证号后4位用星号隐藏
如何把身份证的号生日的4位隐藏,使用substr_replace()函数来实现功能。
substr_replace函数的定义与用法
substr_replace() 函数把字符串的一部分替换为另一个字符串。
语法
substr_replace(string,replacement,start,length)
参数 描述
string 必需。规定要检查的字符串。
replacement
必需。规定要插入的字符串。
start
必需。规定在字符串的何处开始替换。
正数 - 在第 start 个偏移量开始替换
负数 - 在从字符串结尾的第 start 个偏移量开始替换
0 - 在字符串中的第一个字符处开始替换
length
可选。规定要替换多少个字符。
正数 - 被替换的字符串长度
负数 - 从字符串末端开始的被替换字符数
0 - 插入而非替换
例子:
三、将IP地址最后一位替换为星号
将IP最后一位替换为星号的二种方法:
方法1:
方法2:
四、手机号中间用*星号隐藏的方法五则
代码:
//方法一
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),"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{2,3}[-]?{6,7}[-]??)/i',$phone); //固定电话
if($IsWhat == 1)
{
return preg_replace('/(0{2,3}[-]?){3,4}({3}[-]??)/i','$1****$2',$phone);
}
else
{
return preg_replace('/(1{1}){4}({4})/i','$1****$2',$phone);
}
}