文字列をマスクする方法
三つのパターンを紹介
次のパターンを紹介していきます。
- 文字列全体をマスク
- 文字列の後半をマスク
- 文字列の前半をマスク
文字列全体をマスクする
/**
* 文字列全体を任意の文字列でマスクする。
* @param string $str マスクする対象の文字列
* @param string $replace_str マスクに使用する置換文字列
* @return string $result マスク後の文字列
*/
function str_masking($str, $replace_str)
{
// 対象の文字列の文字数を取得
$length = mb_strlen($str);
// 文字数と同じ数だけ置換用文字列を生成
$result = str_repeat($replace_str, $length);
return $result;
}
// 関数実行
$result = str_masking('あいうえお', '*');
// 出力結果
print_r($result);
*****
文字列の後半をマスクする
/**
* 文字列の前半を任意の文字列でマスクする。
* @param string $str マスクする対象の文字列
* @param integer $disp_digit マスクせずに表示する文字数
* @param string $replace_str マスクに使用する置換文字列
* @return string $result マスク後の文字列
*/
function str_masking($str, $disp_digit, $replace_str)
{
// 対象の文字列の文字数を取得
$length= mb_strlen($str);
// マスクせずに表示する文字列の取得
$disp_str = mb_substr($str, 0, $disp_digit - $length);
// マスクする文字数を取得
$mask_count = $length - $disp_digit;
// マスクする文字列を生成
$mask_str = str_repeat($replace_str, $mask_count);
// 表示する文字列と、マスクする文字列を結合
$result = $disp_str . $mask_str;
return $result;
}
// 関数実行
$result = str_masking('あいうえおかきくけこ', 3, '*');
// 出力結果
print_r($result);
あいう*******
文字列の前半をマスクする
/**
* 文字列をの後半を任意の文字列でマスクする。
* @param string $str マスクする対象の文字列
* @param integer $disp_digit マスクせずに表示する文字数
* @param string $replace_str マスクに使用する置換文字列
* @return string $result マスク後の文字列
*/
function str_masking($str, $disp_digit, $replace_str)
{
// 対象の文字列の文字数を取得
$length= mb_strlen($str);
// マスクせずに表示する文字列の取得
$disp_str = mb_substr($str, - $disp_digit);
// マスクする文字数を取得
$mask_count = $length - $disp_digit;
// マスクする文字列を生成
$mask_str = str_repeat($replace_str, $mask_count );
// マスクする文字列と表示する文字列を結合
$result = $mask_str . $disp_str;
return $result;
}
// 関数実行
$result = str_masking('あいうえおかきくけこ', 3, '*');
// 出力結果
print_r($result);
*******くけこ
ポイント
三つのパターンのマスキング処理ができました。
イレギュラーな処理に対しての制御は入れていないので、
必要に応じて処理を追加してみてください。