PHP - 使用异常文件从文件中删除多行

我有一个文本文件,其中包含:


text1 bla bla

text2 bla2 bla2

text3 bla3 bla4

text4 bla4 bla7

text5 bla8 bla7

text6 bla9 blu1

和另一个文件,其中包含:


bla7

bla3

text1

我想创建一个 PHP 脚本,它基于第一个文件创建一个新文件,只包括不包含第二个文件中的文本的行。使用上面的示例,我希望得到以下结果:


text2 bla2 bla2

text6 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);

任何关于我做错了什么以及如何使代码适用于多个单词的建议将不胜感激。


幕布斯6054654
浏览 111回答 1
1回答

红颜莎娜

如果您使用 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
打开App,查看更多内容
随时随地看视频慕课网APP