php - 如何使用 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
解决方案
我的方法看起来像这样:首先在空格 ( 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**
推荐阅读
- driver - 如何为 MX 6 和 TJA1100 PHY 编写驱动程序?
- java - 无法使用 application.properties 设置值
- python-3.x - 我的程序不会停止并返回相同的答案
- camunda - Camunda 任务未显示在使用 Tomcat 的进程定义选项卡中
- javascript - Vue 中的动态属性选择 - 先前的选择变为空白
- javascript - 无法将文件从控制器操作发送到浏览器进行下载
- ios - 每个 UITableView 的 UITableViews 循环都有不同的数据?
- php - BitBucket 管道在测试用例上失败
- android - 如何在单击whatsapp个人资料图像共享时使用我自己的android应用程序显示选择器意图
- node.js - 黄瓜测试失败但 travis 构建仍然通过