我有一个文本文件,其中包含:text1 bla blatext2 bla2 bla2text3 bla3 bla4text4 bla4 bla7text5 bla8 bla7text6 bla9 blu1和另一个文件,其中包含:bla7bla3text1我想创建一个 PHP 脚本,它基于第一个文件创建一个新文件,只包括不包含第二个文件中的文本的行。使用上面的示例,我希望得到以下结果:text2 bla2 bla2text6 bla9 blu1我阅读了其他帖子并尝试使用下面的代码,但它只删除了一个单词。$lines = file('test.txt');$search = 'text2';$result = '';foreach($lines as $line) { if(stripos($line, $search) === false) { $result .= $line; }}file_put_contents('cleanfile.txt', $result);任何关于我做错了什么以及如何使代码适用于多个单词的建议将不胜感激。
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
如果您使用 OR 加入排除词|,那么您可以 grep 查找包含这些词的行并排除它们:
$result = preg_grep('/\b' . implode('|', file('exclusions.txt')) . '\b/i',
file('test.txt'),
PREG_GREP_INVERT);
file_put_contents('cleanfile.txt', $result);
\b确保有一个单词边界,例如不bla匹配。修饰符使它不区分大小写,因为您使用bla2了.istripos
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消