+ + +
С нами с 12.07.03
Сообщения: 99
Рейтинг: 5
|
Добавлено: 16/09/08 в 10:48 |
Допустим, имеются 2 текстовых файла, каждый из которых является списком доменов (по одному домену в строке). При этом во втором файле доменов в списке больше, но некоторое их количество дублирует уже имеющиеся в первом файле.
Нужно, чтобы скрипт "сравнил" списки доменов в обоих файлах, после чего из второго файла удалил из списка все домены, которые уже имеются в первом.
Например, список доменов в первом файле (spisok1.txt) будет таким:
domen-1.ru
domen-2.ru
domen-3.ru
domen-4.ru
domen-5.ru
domen-6.ru
domen-7.ru
domen-8.ru
domen-9.ru
А список доменов во втором файле (spisok2.txt) будет таким:
domen-1.ru
domen-15.ru
domen-2.ru
domen-3.ru
domen-4.ru
domen-11.ru
domen-5.ru
domen-6.ru
domen-7.ru
domen-12.ru
domen-8.ru
domen-13.ru
domen-9.ru
domen-14.ru
domen-10.ru
Нужно, чтобы в результате обработки скриптом из файла spisok2.txt были удалены урлы, имеющиеся в файле spisok1.txt, после чего он стал бы таким:
domen-15.ru
domen-11.ru
domen-12.ru
domen-13.ru
domen-14.ru
domen-10.ru
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 16/09/08 в 11:17 |
Код: | <?
$f=fopen("output.txt","w");fwrite($f,implode("",array_diff(file("spisok2.txt"),file("spisok1.txt"))));fclose($f);
?>
|
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 16/09/08 в 11:23 |
както так:
Код: |
<?php
$array1=file("spisok1.txt");
$array2=file("spisok2.txt");
foreach ($array1 as $value)
{
if(trim($value))
{
foreach($array2 as $key2=>$value2)
{
if(trim($value2) && trim($value2)==trim($value2)){unset($array2[$key2]);}
}
}
}
//print_r($array2); // вывод результирующего массива
//вывод в файл
$file = fopen("spisok2.txt", "w");
fwrite( $file, implode("\n",$array2));
fclose( $file );
chmod ("spisok2.txt", 0777);
?>
|
|
|
|
|
С нами с 27.02.07
Сообщения: 221
Рейтинг: 103
|
Добавлено: 16/09/08 в 11:40 |
Можно скопировать все в один файл и воспользоваться функцией "удалить дублирующиеся строки" в текстовом редакторе. Под macos это умеет textmate.
Upd. Перечитал вопрос еще раз, понял, что неправ. Мой способ оставит все уникальные домены, а не только те, которых нет в первом файле.
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 16/09/08 в 12:15 |
можно
fwrite(fopen('un.txt,"w"),implode("",array_unique(array_merge(file('1.txt'),file('2.txt'))))) ;
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |