溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP如何用星號(hào)隱藏部份用戶名、身份證、IP、手機(jī)號(hào)

發(fā)布時(shí)間:2021-07-02 15:29:42 來(lái)源:億速云 閱讀:540 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“PHP如何用星號(hào)隱藏部份用戶名、身份證、IP、手機(jī)號(hào)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“PHP如何用星號(hào)隱藏部份用戶名、身份證、IP、手機(jī)號(hào)”吧!

一、仿淘寶評(píng)論購(gòu)買(mǎi)記錄隱藏部分用戶名,以下代碼親測(cè)可用。

復(fù)制代碼 代碼如下:

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;
    }
}
使用示例:

復(fù)制代碼 代碼如下:

$str = "如來(lái)神掌";
echo cut_str($str, 1, 0).'**'.cut_str($str, 1, -1);
//輸出:如**掌


二、PHP身份證號(hào)后4位用星號(hào)隱藏

一個(gè)很簡(jiǎn)單的問(wèn)題,想把身份證的號(hào)生日的4位隱藏,一開(kāi)始查函數(shù)居然沒(méi)有看到,然后用了好幾個(gè)函數(shù)處理,覺(jué)得太麻煩就上網(wǎng)搜,后來(lái)發(fā)現(xiàn)有一個(gè)函數(shù)就能直接處理,所以記錄一下:
substr_replace()函數(shù)簡(jiǎn)介:

復(fù)制代碼 代碼如下:


定義和用法
substr_replace() 函數(shù)把字符串的一部分替換為另一個(gè)字符串。
語(yǔ)法
substr_replace(string,replacement,start,length)
參數(shù) 描述
string     必需。規(guī)定要檢查的字符串。
replacement 
    必需。規(guī)定要插入的字符串。
start 
必需。規(guī)定在字符串的何處開(kāi)始替換。
正數(shù) - 在第 start 個(gè)偏移量開(kāi)始替換
負(fù)數(shù) - 在從字符串結(jié)尾的第 start 個(gè)偏移量開(kāi)始替換
0 - 在字符串中的第一個(gè)字符處開(kāi)始替換
length 
可選。規(guī)定要替換多少個(gè)字符。
正數(shù) - 被替換的字符串長(zhǎng)度
負(fù)數(shù) - 從字符串末端開(kāi)始的被替換字符數(shù)
0 - 插入而非替換

使用實(shí)例:

復(fù)制代碼 代碼如下:


[code]
echo strlen($idcard)==15?substr_replace($idcard,"****",8,4):(strlen($idcard)==18?substr_replace($idcard,"****",10,4):"身份證位數(shù)不正常!");


[/code]

三、將IP最后一位替換為星號(hào)

將IP最后一位替換為星號(hào) 代碼如下:
方法一:

復(fù)制代碼 代碼如下:


<?php
str = '1.1.1.1';
reg = '/((?:\d+\.){3})\d+/';
echo preg_replace(reg, "\\1*", str);
?>


方法二:

復(fù)制代碼 代碼如下:


<?php
$ip =$_SERVER['REMOTE_ADDR'];
  $ip_arr= explode('.', $ip);
  $ip_arr[3]='*';
  $ip= implode('.', $ip_arr);
echo $ip;
?>

四、手機(jī)號(hào)中間用*星號(hào)隱藏的方法五則

復(fù)制代碼 代碼如下:

//方法一
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";

//方法五
//屏蔽電話號(hào)碼中間的四位數(shù)字
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);
    }
}

另外,關(guān)于身份證號(hào)驗(yàn)證本站還提供了身份證歸屬地查詢工具如下:

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

感謝各位的閱讀,以上就是“PHP如何用星號(hào)隱藏部份用戶名、身份證、IP、手機(jī)號(hào)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)PHP如何用星號(hào)隱藏部份用戶名、身份證、IP、手機(jī)號(hào)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI