我有两个文本文件: 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的所有行。
有什么想法吗? :) 感谢
答案 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);
}
}