Удалить дубли строк из файла...

WorkNets
На сайте с 17.06.2007
Offline
19
1324

Есть файл (ну очень большой - допустим база) Случается что появляются дубли строк...

Как удалить дубли строк? Оставив их в одном варианте? Желательно на PHP. Подскажите плиз :o

Заранее спасибо всем откликнувшимся :smoke:

Ставки слишком высоки. - Игра идет всерьёз!
mfl
На сайте с 16.10.2006
Offline
134
mfl
#1

$list = array_unique(file('list.txt'));

$list = implode("", $list);
grey109
На сайте с 15.06.2005
Offline
180
#2

Если файл большой, то возможно понадобиться еще снять лимит (он обычно 30 секунд) на выполнение скрипта - set_time_limit(0);

T
На сайте с 28.06.2007
Offline
82
#3

Извините что поднимаю тему, но вопрос похожий.

Как сделать чтобы строки удалялись по названию домена?

Тоесть не по полному совпадению строк а только по его хосту?

Или на php это не реально?

В Allsubmitter есть такая функция при работе с базами - дубликаты доменов.

Нужно такое же только на php.

Например есть файл link.txt:

http://link1.ru/link1.html

http://link2.ru/link1.html
http://link1.ru/link2.html
http://link2.ru/link2.html
http://link1.ru/link3.html
http://link2.ru/link3.html

Как сделать чтобы осталось только

http://link1.ru/link1.html

http://link2.ru/link1.html

Или это не реально? Или будет гораздо дольше на php исполняться чем в Allsubmitter?

[Удален]
#4
<?php

$file="include/cache/keywords/keywords.html";
$_file=file($file);
$_file=array_values(array_unique($_file));
$fp=fopen($file,"w+");
for($i=0;$i<count($_file);$i++)

{

flush();
fputs($fp,$_file[$i]);

}

fclose($fp);

$h = fopen("include/cache/keywords/keywords.html","r");
while (!feof ($h)) {
$content = fgets($h);
echo iconv("WINDOWS-1251", "UTF-8", $content);
}

fclose($h);

?>

вот подобное

mfl
На сайте с 16.10.2006
Offline
134
mfl
#5

KosoyRoman, это про что вообще? Функция фильтрации по всему url приведена выше и умещается в 2х строках.

Trol

для php5

<?php

$list = file('link.txt');
$host = $url = '';
foreach($list as $val) {
$uri = parse_url($val, PHP_URL_HOST)."\n";
if(!substr_count($host, $uri)) {
$url .= $val;
$host .= $uri;
}
}
file_put_contents('link.txt', $url);
?>

В случае использования php4 смотрите функции "parse_url" и "file_put_contents" и заменяйте на эквивалент данных функций.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий