PHP

【PHP】文字列をマスクする方法

文字列をマスクする方法

三つのパターンを紹介

次のパターンを紹介していきます。

  • 文字列全体をマスク
  • 文字列の後半をマスク
  • 文字列の前半をマスク

文字列全体をマスクする


/**
 * 文字列全体を任意の文字列でマスクする。
 * @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);
*******くけこ

ポイント

三つのパターンのマスキング処理ができました。
イレギュラーな処理に対しての制御は入れていないので、
必要に応じて処理を追加してみてください。

  • この記事を書いた人
  • 最新記事

-PHP

© 2022 みるはぴ.com