如何使用strlen用星号(*)替换字符串?

时间:2014-08-08 09:38:09

标签: php strlen

您好,请检查我的代码:

<?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***********wphp应该是p*p

我的代码正在运行,但我需要任何快捷方式来自定义我的PHP代码。分享您的知识

由于

6 个答案:

答案 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;