首页 > 解决方案 > PHP 用符号替换所有字符

问题描述

我正在尝试使用经过审查的密码创建帐户生成器,并且我不想仅用 10 个 * 替换所有字符。我希望它是这样的:如果密码长度为 15 个字符,它将被替换为 15 个 *。我试着用这个:

$censpass = preg_replace('/[a-zA-Z0-9\']/', '*', $accounts[$i]['password']);

但您可能知道,这对 !'s 不起作用。如何将 preg_replace 与PHP 中的每个字符一起使用?如果有人不明白:
我想要这个:“password123!”
用preg_replace替换为:“************”,长度准确
如果存在其他地方,请在下面链接,我试图找到这个,但我只能找到如何替换一些字符,例如数字,
谢谢:)

标签: php

解决方案


为了您的目标,我将使用不同的方法,例如:

$encpass = str_pad('', strlen($accounts[$i]['password']), '*');

事实上,没有必要使用正则表达式(这很慢且耗费资源)来生成与另一个字符串长度相同的字符串。

无论如何,如果您仍然想使用您的解决方案,那么您的用例的正确正则表达式就是.

$censpass = preg_replace('/./', '*', $accounts[$i]['password']);

看看这里: http: //php.net/manual/en/regexp.reference.dot.php


推荐阅读