[精讚] [會員登入]
2221

[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

你可能感興趣的文章

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

PHP 產生連續的日期 要用PHP產生連續的日期,連續月份

[CI3] 使用和修改日曆類別 calendar library CI3有一個日曆圖書館 library,可以快速的建立一個日曆,但是想修改讓他更棒

[PHP] 判斷文字、數字、文字加數字的方法 幾個PHP數字和文字操作上的小眉角:判斷文字、數字、文字加數字的方法

PHP cli 傳入參數 php cli (PHP命令列的傳入參數使用方法

PHP 數字加解密函式 自寫的數字加解密,勉強用

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

一個邏輯的錯誤刪了全部檔案的經驗 今天本來想做一件很簡單的事,但卻足足浪費我多一倍的時間,再加上刪掉我全部的檔案,原因只是因為我自己的邏輯錯誤。

兩次使用InnoDB的慘痛經驗 Mysql 的Innodb引擎雖然好用,但是我得說說我兩次的慘痛經驗,這讓我考慮以後可能不會再使用innodb了

[Mysql/MariaDB] 查看資料庫所占空間 查看資料庫在磁碟中所占空間