0

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

'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 '='
4

3 回答 3

1

你没有得到正确的字符串,试试这个

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

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

于 2013-10-04T14:52:43.813 回答
1

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

$result = preg_replace('/\'db.host\' => \'(.*)\'/', '', $subject);
                        ^
于 2013-10-04T14:57:04.447 回答
0

您可以使用:

$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' => '****'
于 2013-10-04T14:54:18.677 回答