​PHP隐藏字符串长度三分之一的中间字符

远昔 代码记录 2024-11-11 393 0

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('远昔站'); 
    //输出结果:远*站


评论

发表评论:

挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论