PHP隐藏手机号码、银行卡号、真实姓名部分方法

1、隐藏手机号码,隐藏手机号中间部分

php 复制代码
/**
 * 隐藏手机号码
 * @param int $mobile 手机号码
 * @param int $head 头部显示数
 * @param int $tail 尾部显示数
 * @param string $hide_str 隐藏字符串
 * @return string
 */
function getHiddenMobile($mobile, $head = 3, $tail = 4, $hide_str = '****') {
    $hide = mb_strlen($hide_str, 'utf-8');
    return preg_replace("/(\d{{$head}})\d{{$hide}}(\d{{$tail}})/", "$1{$hide_str}$2", $mobile);
}
echo getHiddenMobile("13588888888");

2、 隐藏银行卡号,只显示尾号方法

php 复制代码
/**
 * 隐藏银行卡号
 * @param int $card_no 银行卡号
 * @param int $tail 尾部显示数
 * @param string $hide_str 隐藏字符串
 * @return string
 */
function getBankCardNo($card_no, $tail = 4, $hide_str = ' **** **** **** ') {
    return $hide_str . substr($card_no, -$tail, $tail);
}
echo getBankCardNo("667731591283");

3、 隐藏真实姓名中间部分

php 复制代码
/**
 * 隐藏真实姓名
 * @param string $name 真实姓名
 * @return string
 */
function getHideRealName($name) {
    $length = mb_strlen($name, 'utf-8');
    if ($length == 2) {
        $hide_str = mb_substr($name, 0, 1, 'utf-8') . '*';
    } elseif ($length >= 3) {
        $hide_str = mb_substr($name, 0, 1, 'utf-8') . '*' . mb_substr($name, -1, 1, 'utf-8');
    } else {
        $hide_str = $name;
    }
    return $hide_str;
}

echo getHideRealName("陈小明");
相关推荐
用户713874229003 小时前
深入 Claude Code 的 settings.json
后端
张三丰23 小时前
LEFT JOIN 到底什么时候会被优化器偷偷改写成 INNER JOIN
后端
用户40966601317514 小时前
MySQL 索引优化速查表:3 分钟定位慢查询根因
后端
feelmylife594 小时前
企业级 LLM Mass Gateway — 多租户高并发网关,真正难点是 streaming 下的配额计数
人工智能·后端
云技纵横4 小时前
一个 CompletableFuture,把 CPU 打满了:默认线程池的线上坑
后端
free354 小时前
垃圾回收(GC)入门:从手动管理到自动回收的底层逻辑与演进
后端·架构
北冥you鱼4 小时前
Go语言与默克尔树:区块链数据完整性的基石
开发语言·golang·区块链
库克克4 小时前
【C++】类和对象--this指针详解
java·开发语言·c++
洛卡卡了4 小时前
Claude Code 项目级 Skill:团队协作场景下的使用场景
人工智能·后端·claude
360智汇云4 小时前
一次Redis超时引发的“冤案“
数据库·redis·php