首页 > 解决方案 > 如何使用 substr 隐藏姓名姓氏信息?

问题描述

我的代码允许我用星号隐藏姓氏信息。但其输出为 nameSurname >> n ****** e。我希望它是 n **** S **** e。所以我希望不要隐藏姓氏的第一个字母。我怎样才能做到这一点?

$len = strlen($data->userFullName);
$yildizlanmis =  substr($data->userFullName, 0, 1).str_repeat('*', $len - 2).substr($data->userFullName, $len - 1, 1); //NameSurname >> N*******e

标签: phpwordpresssubstr

解决方案


我的方法看起来像这样:首先在空格 ( explode($name, " ")) 处分隔名称,遍历这些分隔的部分,添加第一个字母,然后是剩余的星号:

// Your name
$name = "John Doe";

// Split name at ' '
// -> "John", "Doe"
$name_fragments = explode(" ", $name);

// Loop over "John" and "Doe"
$result = "";
foreach ($name_fragments as $fragment) {
    if (strlen($result) !== 0) {
        $result .= " ";
    }

    // Add clear first letter
    $result .= $fragment[0];

    // Add asterisks
    $result .= str_repeat("*", strlen($fragment) - 1);
}

echo ($result);
// J*** D**

推荐阅读