php星号隐藏部分用户名/身份证/ip地址/手机号等

发布时间:2021-01-08编辑:脚本学堂
有关php星号隐藏字符串部分信息的方法,php实现用户名、身份证、ip地址及手机号部分字段用星号显示,包括仿淘宝评论购买记录隐藏部分用户名、php身份证号后4位用星号隐藏等例子。

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;
}
}

使用方法:
 

$str = "如来神掌";
echo cut_str($str, 1, 0).'**'.cut_str($str, 1, -1);
//输出:如**掌

二、php身份证号后4位用星号隐藏

如何把身份证的号生日的4位隐藏,使用substr_replace()函数来实现功能。

substr_replace函数的定义与用法

substr_replace() 函数把字符串的一部分替换为另一个字符串。

语法
substr_replace(string,replacement,start,length)

参数 描述
string   必需。规定要检查的字符串。
replacement
必需。规定要插入的字符串。
start
必需。规定在字符串的何处开始替换。
正数 - 在第 start 个偏移量开始替换
负数 - 在从字符串结尾的第 start 个偏移量开始替换
0 - 在字符串中的第一个字符处开始替换
length
可选。规定要替换多少个字符。
正数 - 被替换的字符串长度
负数 - 从字符串末端开始的被替换字符数
0 - 插入而非替换

例子:
 

复制代码 代码示例:
echo strlen($idcard)==15?substr_replace($idcard,"****",8,4):(strlen($idcard)==18?substr_replace($idcard,"****",10,4):"身份证位数不正常!");

三、将IP地址最后一位替换为星号

将IP最后一位替换为星号的二种方法:

方法1:
 

复制代码 代码示例:
<?php
str = '1.1.1.1';
reg = '/((?:d+.){3})d+/';
echo preg_replace(reg, &quot;1*&quot;, str);

方法2:
 

复制代码 代码示例:
<??php
$ip =$_SERVER['REMOTE_ADDR'];
$ip_arr= explode('.', $ip);
$ip_arr='*';
$ip= implode('.', $ip_arr);
echo $ip;

四、手机号中间用*星号隐藏的方法五则

代码:
 

复制代码 代码示例:

//方法一
function mobile_asterisk($mobile)
{
$mobile_asterisk = substr($mobile,0,4).&quot;****&quot;.substr($mobile,8,3);
return $mobile_asterisk;
}
echo mobile_asterisk(&quot;15810904579&quot;);
//方法二
echo preg_replace(&quot;/(1d{1,4})dddd(d{3,4})/&quot;, &quot;$1****$2&quot;, &quot;15810904579&quot;);

//方法三
$haoma=&quot;15012345678&quot;;
echo preg_replace(&quot;/(d{3})d{5}/&quot;,&quot;$1*****&quot;,$haoma);
//输出150*****678

//方法四
$tel1 = &quot;13888111188&quot;;
$tel2 = &quot;+8613888111188&quot;;
$tel3 = &quot;0861088111188&quot;;
$tel4 = &quot;086-010-88111188&quot;;
echo preg_replace('/(^.*)d{4}(d{4})$/','1****2',$tel1),&quot;n&quot;;
echo preg_replace('/(^.*)d{4}(d{4})$/','1****2',$tel2),&quot;n&quot;;
echo preg_replace('/(^.*)d{4}(d{4})$/','1****2',$tel3),&quot;n&quot;;
echo preg_replace('/(^.*)d{4}(d{4})$/','1****2',$tel4),&quot;n&quot;;

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