PHPは名前の最初の文字以外の文字を*番で置き換えます
1969 ワード
/*
* : *
* :
*
*
* :string
*/
function starReplace($name, $num = 0)
{
if ($num && mb_strlen($name, 'UTF-8') > $num) {
return mb_substr($name, 0, 4) . '*';
}
if ($num && mb_strlen($name, 'UTF-8') <= $num) {
return $name;
}
$doubleSurname = [
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' '
];
$surname = mb_substr($name, 0, 2);
if (in_array($surname, $doubleSurname)) {
$name = mb_substr($name, 0, 2) . str_repeat('*', (mb_strlen($name, 'UTF-8') - 2));
} else {
$name = mb_substr($name, 0, 1) . str_repeat('*', (mb_strlen($name, 'UTF-8') - 1));
}
return $name;
}