【发布时间】:2019-09-28 21:47:11
【问题描述】:
我在 PHP 中定义了一些常量,我认为它们是私有的,不应该显示在浏览器中。
const PRIV_API_KEY = '1234-5678-8426';
const PRIV_ACCESS_TOKEN = 'fnse0segh-23hfoeghl-fseuhosz';
...
如果我有这样的字符串
$message = 'Lorem ipsum dolor sit ammet 1234-5678-8426 bibendum id et dolor.';
1234-5678-8426 可以是我上面提到的任何常量。如果它们与任何私有常量匹配,我想替换除破折号 (-) 之外的所有字符。
我想要实现的是:
Lorem ipsum dolor sit ammet ****-****-**** bibendum id et dolor.
到目前为止,我只是想出了一个正则表达式来替换非破折号字符。
$message = preg_replace('/[^-]/', '*', $message);
我当前解决方案的问题在于,它会替换所有非破折号字符,即使它们与任何私有常量都不匹配。
【问题讨论】:
标签: php regex string replace preg-replace