Почему PHP скрипт удаляет не все дубликаты строки?

Есть скрипт (выполняется с помощью cron) :

<?php
$file= file ('sbor_proxy_s_dybliami.txt'); // файл на входе
sort ($file); // сортируем по алфавиту
$file = array_unique($file); // убираем повторы
foreach($file as $val){
$end .= $val ;
}
$out=fopen('gotovo_vse_sellery_bezdybley.txt','w'); // файл на выходе
fwrite($out,$end);
fclose($out);


Данный скрипт должен прочитать файл sbor_proxy_s_dybliami.txt ,
далее проверить его на наличии дублей,
далее удалить именно дублицирующую строку, но оставив оригинальную строку,
далее скрипт записывает полученные данные без дублей в файл gotovo_vse_sellery_bezdybley.txt

Вопрос: Почему этот скрипт удаляет не все дубликаты и в файле gotovo_vse_sellery_bezdybley.txt я вижу повторяющиеся строки, что изменить скрипте чтоб скрипт как мне необходимо удалял дубликаты ?

прилагаю данные файлов ниже:
входной файл: sbor_proxy_s_dybliami.txt

2.87.116.68:8080
79.130.38.71:4145
79.131.163.165:4145
85.73.26.116:8080
62.103.25.184:35798
94.65.255.158:4145
79.130.222.252:4145
178.147.5.112:4145
79.106.108.102:4145
79.106.165.238:39983
185.120.38.103:4145
80.90.88.147:32850
79.106.108.110:57960
79.106.165.30:50194
79.106.34.26:4145
79.106.35.197:1080
80.78.70.9:4145
185.188.216.93:4145
91.187.116.232:53526
185.85.152.241:58083
95.107.199.90:4145
37.26.85.98:4145
185.33.34.76:51604
185.85.152.243:1080
178.132.218.126:4145
80.78.73.58:4145
77.247.88.10:41757
91.187.116.232:53526
37.26.85.98:4145
79.106.115.105:4145
79.106.108.102:4145
79.106.165.238:39983
185.120.38.103:4145
80.90.88.147:32850
79.106.165.30:50194
79.106.108.110:57960
80.78.70.9:4145
79.106.35.197:1080
79.106.34.26:4145
185.188.216.93:4145
46.190.47.253:4145
85.74.89.216:4145
2.87.116.68:8080
79.130.38.71:4145
79.131.163.165:4145
85.73.26.116:8080
62.103.25.184:35798
94.65.255.158:4145


выходной файл, в нём не должно быть дублей, но они почему-то есть : gotovo_vse_sellery_bezdybley.txt

178.132.218.126:4145
178.147.5.112:4145
185.120.38.103:4145
185.188.216.93:4145
185.188.216.93:4145
185.33.34.76:51604
185.85.152.241:58083
185.85.152.243:1080
2.87.116.68:8080
37.26.85.98:4145
46.190.47.253:4145
62.103.25.184:35798
77.247.88.10:41757
79.106.108.102:4145
79.106.108.110:57960
79.106.115.105:4145
79.106.165.238:39983
79.106.165.30:50194
79.106.34.26:4145
79.106.35.197:1080
79.130.222.252:4145
79.130.38.71:4145
79.131.163.165:4145
80.78.70.9:4145
80.78.73.58:4145
80.90.88.147:32850
85.73.26.116:8080
85.74.89.216:4145
91.187.116.232:53526
94.65.255.158:414594.65.255.158:4145
95.107.199.90:4145
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro Куратор тега PHP
Думаю это решит проблему

sort ($file); // сортируем по алфавиту
$file = array_map('trim', $file); // <---------------
$file = array_unique($file); // убираем повторы


Так как в приведённом коде нет проблем, если это весь код
https://3v4l.org/ukTns

Видим что из 48 ip с дублями остаётся 30 уникальных
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы