php - PHP 用符号替换所有字符
问题描述
我正在尝试使用经过审查的密码创建帐户生成器,并且我不想仅用 10 个 * 替换所有字符。我希望它是这样的:如果密码长度为 15 个字符,它将被替换为 15 个 *。我试着用这个:
$censpass = preg_replace('/[a-zA-Z0-9\']/', '*', $accounts[$i]['password']);
但您可能知道,这对 !'s 不起作用。如何将 preg_replace 与PHP 中的每个字符一起使用?如果有人不明白:
我想要这个:“password123!”
用preg_replace替换为:“************”,长度准确
如果存在其他地方,请在下面链接,我试图找到这个,但我只能找到如何替换一些字符,例如数字,
谢谢:)
解决方案
为了您的目标,我将使用不同的方法,例如:
$encpass = str_pad('', strlen($accounts[$i]['password']), '*');
事实上,没有必要使用正则表达式(这很慢且耗费资源)来生成与另一个字符串长度相同的字符串。
无论如何,如果您仍然想使用您的解决方案,那么您的用例的正确正则表达式就是.
:
$censpass = preg_replace('/./', '*', $accounts[$i]['password']);
看看这里: http: //php.net/manual/en/regexp.reference.dot.php
推荐阅读
- javascript - 为什么在 return 语句后没有提升函数?
- matlab - 如何使用 ODE45 求解具有困难结束条件的微分方程组?
- node.js - 赫罗库。我应该使用 Web 还是工作进程?
- c# - 如何组合 Windows 路径和通配符?
- c# - "Configuration config = new Configuration": 'Configuration' 是一个命名空间,但用作类型
- markdown - Markdown 在 GatsbyJS 中无法正确显示
- visual-studio - 使用 VS2019 构建控制台 .netcoreapp3.1 应用程序时出错
- php - 从 XPath 结果到简单数组。我如何在不使用 foreach (或扫描数组)的情况下做到这一点
- docker - Github 操作 docker 缓存
- javascript - JQuery 函数不尊重被点击的组件