删除在另一个文件中找到的行

时间:2013-11-06 07:32:25

标签: php file text replace find

我有2个文件: text1.txttext2.txt

如何执行此操作:如果在text1.txt中找到与text2.txt中的行匹配的行,请将其删除(或显示唯一的行)?

这是我到目前为止所做的:

$a = file('text1.txt');
$b = file('text2.txt');
$contents = '';

foreach($b as $line2) {
    foreach($a as $line1) {
        if(!strstr($line1, $line2)) {
            $contents .= $line1; 
        }  
    }
}

file_put_contents('unique.txt', $contents);

1 个答案:

答案 0 :(得分:1)

那将是:

file_put_contents('unique.txt', array_diff(file('text1.txt'), file('text2.txt')));

- 因为你将文件完全加载到RAM中,我认为这是可以接受的解决方案。

此外,您可能希望定义自己的函数以确定字符串是否相等。那么逻辑将是相同的,但应该使用array_udiff()