我对preg_replace感到有点困惑,因为我之前没有使用过正则表达式。 我做了一些搜索,无法找到适合我情况的任何内容。
我有包含与服务器建立连接的日志,如下所示:
Username connected, address "123.123.123.123:1234"
我希望preg_replace能够找到这个部分:
address "123.123.123.123:1234"
并改为:
address "snip"
基本上剪掉了IP地址,因此这些日志可以在网站上公开发布。
这是我目前正在测试的内容。
$new_log = preg_replace('/\address\s"(.*)"/', '', $old_log);
我只需要帮助正确使用正则表达式。
答案 0 :(得分:2)
这应该适合你:
(在这里,我将文件的所有行都放入file()
的数组中。之后我将address "[ip]"
部分替换为address "snip"
preg_replace()
。最后我只需使用file_put_contents()
)
<?php
$lines = file("logs.txt");
$lines = preg_replace("/\baddress\s?\".*?\"/", "address \"snip\"", $lines);
file_put_contents("logs.txt", $lines);
?>
正则表达式解释:
\baddress\s?\".*?\"
之前的示例文件:
Username connected, address "123.123.123.123:1234"
Username connected, address "123.123.123.123:1234"
后:
Username connected, address "snip"
Username connected, address "snip"
旁注:
如果您想了解有关正则表达式内容的更多信息,还有一些有用的链接: