使用正则表达式隐藏存储在数组中的数据库信息


Use regular expression to hide database information stored in an array

我必须显示源代码,但想删除数据库信息。信息以这种方式存储

'db.host' => 'localhost',
'db.user' => 'user',
'db.pass' => 'pass',
'db.name' => 'name

现在我把它作为正则表达式,但它似乎不起作用

$content = preg_replace('''db.host'' => ''(.*)''/', '', $content);

错误:

Warning: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Unknown modifier '='

您没有正确获取字符串,请尝试此操作

$content = preg_replace("/'db.[a-z]+' => '(.*?)'/i", '', $content);

看看我的例子:http://regexr.com?36js6

您缺少第一个正斜杠(左分隔符)。

$result = preg_replace('/''db.host'' => ''(.*)''/', '', $subject);
                        ^

您可以使用:

$s = <<< EOF
'db.host' => 'localhost',
'db.user' => 'user',
'db.pass' => 'pass',
'db.name' => 'name'
EOF;
echo preg_replace("~(=>'s*')[^']+'~m", '$1****''', $s);

输出

'db.host' => '****',
'db.user' => '****',
'db.pass' => '****',
'db.name' => '****'