You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中如何将MySQL查询返回的姓名仅显示前3字符并替换剩余为星号

解决方案

先封装一个通用的掩码处理函数,避免重复写逻辑:

function maskName($name) {
    $length = strlen($name);
    return $length > 3 ? substr($name, 0, 3) . str_repeat('*', $length - 3) : str_repeat('*', $length);
}

把这段函数加到你的代码里,再修改输出first_name和last_name的部分,调用函数处理即可。完整代码如下:

require_once 'includes/db.php';

// 封装掩码处理函数
function maskName($name) {
    $length = strlen($name);
    return $length > 3 ? substr($name, 0, 3) . str_repeat('*', $length - 3) : str_repeat('*', $length);
}

$query = "SELECT * FROM sign_in3 ORDER BY date ASC LIMIT 5";
$results = mysqli_query($conn, $query); 
$records = mysqli_num_rows($results);
if (!empty($records)) { 
    while ($row = mysqli_fetch_assoc($results)) { ?>
        <tr style="font-size:40px;">
            <td><center><?php echo maskName($row['first_name']); ?></center></td>
            <td><center><?php echo maskName($row['last_name']); ?></center></td>
            <td><center><?php echo $row['last_number']; ?></center></td>
        </tr>
    <?php }
} ?>

关键说明

  • 函数maskName会判断字符串长度:如果超过3个字符,保留前3位,剩下的用星号替换;如果长度≤3,直接用对应数量的星号代替(如果想让短名字原样显示,把函数里的: str_repeat('*', $length)改成: $name即可)。
  • 循环输出时,直接把数据库返回的姓名字段传入函数,就能得到需要的掩码效果。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:31:11