Реклама на сайте Advertise with us

Нужен РНР-скрипт. Может кто поможет?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:
+ + +


С нами с 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

0
 



С нами с 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);
?>

6+9

0
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 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);

?>

крипта на ByBit

0
 



С нами с 27.02.07
Сообщения: 221
Рейтинг: 103

Ссылка на сообщениеДобавлено: 16/09/08 в 11:40       Ответить с цитатойцитата 

Можно скопировать все в один файл и воспользоваться функцией "удалить дублирующиеся строки" в текстовом редакторе. Под macos это умеет textmate.

Upd. Перечитал вопрос еще раз, понял, что неправ. Мой способ оставит все уникальные домены, а не только те, которых нет в первом файле.

0
 



С нами с 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'))))) ;

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »