[精讚] [會員登入]
2730

[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 類別的繼承及建構子和解構子

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper

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

設定Google analytics API #2 -- PHP的程式安裝和撰寫 讓你的網站能夠存取你的Google analytics上面的資料

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

[CodeIgniter 3] 自寫找不到頁面(page404)的方法 使用CI3框架中如果找不到頁面,就會導到一個自定的404頁面,該怎麼做?

隨機好文

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

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

[札記] 2016.7~12月札記 札記,只是札記

好用的3+2碼郵遞區號查詢系統推薦 網路上找到用地址輸入判斷3+2碼郵遞區號的辨識率不高,除了這個網站…

[Apache] 自訂錯誤頁面及移掉歡迎頁 Apache 有一個歡迎頁,以正式網站來說,出現這頁有點不專業,該移除它..