如何在PHP中将字符串转换为符号

时间:2012-05-17 21:10:12

标签: php

如何将密码字符串转换为指定的符号,如*或其他内容。

我目前正在处理更改密码页面。 我想显示密码到页面,我想避免被某人忽略密码,所以我想将密码的字符串转换为*这样的符号,长度相同。 像<input type="password" />

这样的例子

抱歉我的英语不好......

6 个答案:

答案 0 :(得分:10)

$output_password = str_repeat ('*', strlen ($input_password));

答案 1 :(得分:1)

如果您正在寻找一种简单的方法来创建一个等于密码长度的星号字符串:

$modified = str_repeat( "*", strlen( "secretpass" ) );

echo $modified; // **********

答案 2 :(得分:1)

您不会在HTML中输出密码,而是创建密码的星号(*)表示。这可以通过str_repeat函数轻松完成:

<?php
$password = "MyPasswordThatIWantToMask";
$maskedPassword = str_repeat("*", strlen($password));
?>

现在您只需输出$maskedPassword作为密码字段的值。

然而,另一个非常有趣的事情:你怎么知道用户的密码长度?我真诚地希望你把密码哈希,而不是用纯文本。

答案 3 :(得分:0)

这样做:

$passwordstring = "password";
$outputpassword = "";
while(strlen($outputpassword)<strlen($passwordstring))
{
    $outputpassword .= "*";
}

echo $outputpassword

答案 4 :(得分:0)

一种方法是使用密码类型的输入,但将其设置为禁用。

<input type='password' disabled='disabled' value='somepassword' />

答案 5 :(得分:0)

虽然这里有许多答案展示str_repeat()的用户,但我有点怀疑这是你想要的。毕竟,任何白痴都可以用一个字符填充一个字符串,当你正确指出<input type="password" />时,你可以简单地使用它,这样做是没有意义的(是的,你仍然可以从中获取密码)源代码,但那么为什么要麻烦填充一个混淆的字段?或者不只是用静态固定数量的*字符填充它?)。

我怀疑你正在寻找更像这样的东西:

<?php

  $thePassword = "thisIsMyPassword";

?>

<input type="text" id="input_user_types_in" value="<?php echo str_repeat('*', strlen($thePassword)); ?>" />
<input type="hidden" id="value_to_post_back" name="value_to_post_back" value="<?php echo $thePassword; ?>" />

<script type="text/javascript">

  var textInput = document.getElementById('input_user_types_in');
  var hiddenInput = document.getElementById('value_to_post_back');

  textInput.onfocus = function() {
    this.value = hiddenInput.value;
  };

  textInput.onblur = function() {
    var i;
    hiddenInput.value = this.value;
    this.value = '';
    for (i = 0; i < hiddenInput.value.length; i++) {
      this.value = this.value + '*';
    }
  };

</script>

周围有fiddle; - )