[精讚] [會員登入]
2542

[PHP] 將字串的部分加上遮罩的函式

有些資料會想要隱藏部分的字元,例如身分證號或信用卡號、電話等。我寫了一個函式來完成這個功能。

分享此文連結 //n.sfs.tw/10970

分享連結 [PHP] 將字串的部分加上遮罩的函式@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-22 22:22:27 最後編修
2017-04-10 00:04:33 By 張○○
 

很簡單的功能,就安全上的理由,主要是把字串的中間部分加上 '*'。

第二個變數 $masknum 如果是負的,代表要留言不 MASK 的個數。

補充:此函數不處理中文字,輸入字串須大於2個字元才會加遮罩。


 /**
  * function MaskString(): Mask a string for security.
  * @scope public
  * @param string $s : input string, >2 characters long string
  * @param interger $masknum : the number of characters in the middle of a string to be masked,
           if masknum is negative, the returned string will leave abs(masknum) characters in 
           both end untouched.
  * @return a masked string
  * ex. MaskString( "12345678",3)  : 123***78
  * ex. MaskString( "12345678",-3)  : 12*****8
  */
  function MaskString($s, $masknum=3){ 
    $len= strlen($s);
    if($masknum<0) $masknum = $len + $masknum;
    if($len<3)return $s;
    elseif( $len< $masknum+1)return substr( $s, 0,1). str_repeat('*',$len-2). substr( $s, -1);
    $right=  ($len-$masknum)>>1;
    $left= $len- $right- $masknum;
    return substr( $s, 0,$left). str_repeat('*',$len-$right-$left). substr( $s, -$right);
  }

原文 2011-05-14 16:31:54

END

你可能感興趣的文章

[PHP] 讀取作業系統程式執行結果 PHP讀取作業系統程式執行結果

PHP 移除陣列中的元素 要移除陣列中的其中一項元素

PHP判斷對方瀏覽器語系 多語系的網頁應該主動偵查瀏覽器的語系,配合使用者跳出合適的語系。

設定Google analytics API #3 -- 查詢範例 讓你的網站能夠存取你的Google analytics上面的資料

[phpmyadmin] 缺少 mcrypt 外掛,請檢查 PHP 設定 缺少 mcrypt 外掛,請檢查 PHP 設定,安裝php-mcrypt。

[PHP7] 利用Memcached 儲存 Session Memcached+ PHP7,利用Memcached 儲存 Session。

隨機好文

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法

NETCRAFT發現你的網站及作業系統 NETCRAFT可以發現你的網站及作業系統

[MAC] 安裝APACHE+PHP OS Darwin OpenIDMac1deAir 15.6.0 Darwin Kernel Version 15.6.

[AS3] 物件加上超連結的方法 物件加上超連結,可讓使用者點擊的方法