您好,请检查我的代码:
<?php
$length='';
//$username="stackoverflow";
//$username="php";
$username=$_REQUEST['parameter'];
$len = strlen($username)-2;
for($i=1; $i<=$len; $i++){
$length .= "*";
}
echo $username[0].$length.substr($username, -1);
?>
以上代码我使用此代码工作正常。但我需要自定义代码。
EX-如果我使用stackoverflow
它应该是s***********w
而php
应该是p*p
我的代码正在运行,但我需要任何快捷方式来自定义我的PHP代码。分享您的知识
由于
答案 0 :(得分:1)
最好的办法是将strlen()
与str_repeat()
和substr()
合并为开头和结尾字符。这样的功能可能如下所示:
function obfuscate_username($username) {
if (strlen($username) < 3) {
return $username;
}
else {
return substr($username, 0, 1).str_repeat('*', strlen($username)-2).substr($username, -1);
}
}
答案 1 :(得分:1)
$username=$_REQUEST['parameter'];
echo substr($username,0,1).str_repeat("*",strlen($username)-2).substr($username,-1);
<强> Fiddle 强>
答案 2 :(得分:1)
$a = "stackoverflow";
echo substr_replace($a, str_repeat("*", strlen($a)-2), 1,strlen($a)-2);
答案 3 :(得分:1)
你可以试试这个
<?php
$str = "stackoverflow";
$len = strlen($str);
if($len>=3)
{
$new_str = $str[0].str_repeat("*", $len-2).$str[$len-1];
}
else
{
$new_str = $str;
}
echo $new_str;
?>
<强> Example 强>
答案 4 :(得分:0)
获取字符串的长度:
$length = strlen($string);
获取第一个和最后一个角色:
$first = substr("abcdef", 0, 1);
$last = substr("abcdef", -1);
创建字符串的中间部分:
$middle = str_repeat("*", $length-2);
最后获得整个字符串:
return $first.$middle.$last;
答案 5 :(得分:0)
简单易用:$username[0]
添加第一个字符,str_repeat
添加一个字符n次,username[$len - 1]
添加字符串的最后一个字符。
$username = $_REQUEST["parameter"];
$len = strlen($username);
if ($len >= 2)
return $username[0] . str_repeat("*", $len - 2) . $username[$len - 1];
else
return $username;