萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP用星號隱藏部份用戶名、身份證、IP、手機號等實例

PHP用星號隱藏部份用戶名、身份證、IP、手機號等實例

 這篇文章主要介紹了PHP用星號隱藏部份用戶名、身份證、IP、手機號等實例,需要的朋友可以參考下

一、仿淘寶評論購買記錄隱藏部分用戶名,以下代碼親測可用。    代碼如下: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最後一位替換為星號 代碼如下: 方法一:    代碼如下: <?php str = '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),"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);     } }
copyright © 萬盛學電腦網 all rights reserved