PHP隐藏字符串长度三分之一的中间字符,并兼容中文字符
若字符长度小于3则不隐藏,若大于或等于3则隐藏字符串长度三分之一的中间字符
例如:123456789,结果则是123***789
function hideOneThird($string) { //隐藏3位以上中间字符
$length = mb_strlen($string, 'UTF-8');
if ($length < 3) { return $string; }
// 计算要隐藏的字符数量,向上取整
$toHide = ceil($length / 3);
// 计算开头和结尾的部分
$startLength = floor(($length - $toHide) / 2); // 开头部分的长度
$endLength = $length - $toHide - $startLength; // 结尾部分的长度
// 提取开头和结尾部分
$start = mb_substr($string, 0, $startLength, 'UTF-8'); // 开头部分
$end = mb_substr($string, -$endLength, null, 'UTF-8'); // 结尾部分
// 创建中间部分的星号字符串
$middle = str_repeat('*', $toHide);
// 拼接结果
return $start . $middle . $end; }
echo hideOneThird('远昔站');
//输出结果:远*站
评论
发表评论: