我有一个PHP程序,着眼于一个日志文件,并将其打印到一个页面(下面的代码)呼应的东西。我不希望所述网站的用户能够查看包含/
的任何行。我知道我可以使用trim来删除某些字符,但是有没有办法删除整行?例如,我想保留诸如“你好”之类的东西,并删除像/xx.xx.xx.xx connected
之类的东西。我希望删除的所有行都有相同的公用密钥/
。人民在所述日志文件名具有身边<>
S,所以我必须用htmlspecialcharacters
不要用某些字符
$file = file_get_contents('/path/to/log', true);
$file = htmlspecialchars($file);
echo nl2br($file);
感谢您的帮助!
编辑: 感谢所有的答案,目前与他们摆弄!
EDIT2: 最终代码:
<?php
$file = file_get_contents('/path/to/log', true);
// Separate by line
$lines = explode(PHP_EOL, $file);
foreach ($lines as $line) {
if (strpos($line, '/') === false) {
$line = htmlspecialchars($line . "\n");
echo nl2br($line);
}
}
?>
GOogle正则表达式.....应该让你开始 – KyleK
目前你正在使用'='而不是''=' – metadings
'这个字符串加倍,但是没有理由先放入'\然后立即将它变成'
'。只要做'htmlspecialchars($ line)'。'首先放置'
',然后放下'nl2br()'。由于您一次只读一行,因此可以保证没有其他换行符。 – JJJ