从TXT文件中删除类似的条目?

时间:2013-08-06 15:17:39

标签: php

我有两个文本文件: localhost.txt host.txt

localhost.txt 包含:

127.0.0.1:100
127.0.0.1:200
127.0.0.1:300
127.0.0.1:400
127.0.0.1:500
127.0.0.1:600
127.0.0.1:700
127.0.0.1:800
127.0.0.1:(...)

host.txt 包含:

172.39.32.1:100
172.39.32.1:200
172.39.32.1:300
172.39.32.1:400
172.39.32.1:500
172.39.32.1:600
172.39.32.1:700
172.39.32.1:800
127.0.0.1:1300
127.0.0.1:1800
172.39.32.1:(...)

(...) 我正在使用这个脚本

$data = file("localhost.txt");
file_put_contents('host.txt', implode(array_unique($data))); 
$fisier = file_get_contents('host.txt'); 

删除重复项。

我需要一个也会删除类似行的脚本,例如如果localhost.txt中的127.0.0.1:200已经存在于host.txt中,则脚本将从host.txt中删除127.0.0.1的所有行。

有什么想法吗? :) 感谢

1 个答案:

答案 0 :(得分:1)

$hosts_lines = file("hosts.txt");

foreach($hosts_lines as $line) {
    $temp = explode(":", $line);
    $hosts[$temp[0]][] = $temp[1];
}


$localhost = file("localhost.txt");

foreach ($localhost as $line) {
    $temp = explode(":", $line);
    unset($hosts[$temp[0]]);
}


foreach($hosts as $ip => $ports) {
    foreach ($ports as $port) {
        printf("%s:%s", $ip, $port);
    }
}