Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск дублей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
KEFIR4UK
Отправлено: 19 Сентября, 2014 - 11:27:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Добрый день.Нужен совет.Есть текстовый файл с мылами. Одни и те же мыла повторяются.Нужно сделать так что бы мыла которые повторяются 3 и больше раз были в отдельном файле и в таком количестве сколько они повторяются,или как то по другому но нужно что бы было видно сколько раз повторяются мыла.Сам файл в таком виде:
77.52.94.232<zvan2009@rambler.ru>
109.173.98.148<zulus050@rambler.ru>
188.162.65.108<zinaidacoposova@rambler.ru>
37.212.57.252<zhannakrapivka@rambler.ru>
37.212.109.102<zhannakrapivka@rambler.ru>
Здесь посоветовали функцию array_count_values(); но, вылезла еще одна проблемка последние две строки ето одно и тоже мыло но айпихи разные в итоге это разные строки и функция их тоже различает как разные. Но мне нужно что бы искало по мылу дубли.Как выйти из ситуации?
Да и еще,как результат функции array_count_values(); можно записать в файл в удобно-читаемом виде?Нашел функцию serialize, правда читать не удобно)
 
 Top
RickMan
Отправлено: 19 Сентября, 2014 - 11:30:07
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Почитайте про foreach.
Советую как решение, разбить строки на два массива: массив айпи и емайлов... Пропустить массив умайлов через array_count_values ну и вывести в нужном формате.
 
 Top
Sail
Отправлено: 19 Сентября, 2014 - 11:44:39
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




KEFIR4UK пишет:
последние две строки ето одно и тоже мыло но айпихи разные в итоге это разные строки и функция их тоже различает как разные. Но мне нужно что бы искало по мылу дубли.Как выйти из ситуации?

Простейший способ:
PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2. '77.52.94.232<zvan2009@rambler.ru>'
  3. ,'109.173.98.148<zulus050@rambler.ru>'
  4. ,'188.162.65.108<zinaidacoposova@rambler.ru>'
  5. ,'37.212.57.252<zhannakrapivka@rambler.ru>'
  6. ,'37.212.109.102<zhannakrapivka@rambler.ru>'    
  7. );
  8.  
  9. foreach($arr as $value) {
  10.     $i = strpos($value, '<');
  11.     $j = strpos($value, '>');
  12.     $str = substr($value, $i+1, $j-$i-1);
  13.     var_dump($str);
  14. }
  15.  

Выделили собственно e-mail в $str.
Можно их попутно в массив включать...
Можно регулярным выражением выделять только e-mail при чтении из файла...

(Отредактировано автором: 19 Сентября, 2014 - 11:46:40)

 
 Top
KEFIR4UK
Отправлено: 19 Сентября, 2014 - 12:34:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Sail пишет:
ну и вывести в нужном формате.

Додуматься не могу как.Сделал по ка только ето
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $file=file("test.txt");
  3. for($i=0;$i<=count($file)-1;$i++)
  4. {
  5. $line=explode(":",$file[$i]);
  6. $arr_of_ip[]=$line[0];
  7. $arr_of_mail[]=$line[1];
  8. }
  9. print_r(array_count_values($arr_of_mail));
  10.  

Как мне обратиться к отдельному элементу массива array_count_values? что бы потом искать в массиве $file соответствинные айпи адреса?
 
 Top
Sail
Отправлено: 19 Сентября, 2014 - 12:41:29
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




KEFIR4UK пишет:
$line=explode(":",$file[$i])

А где, простите, в предложенном наборе данных нашлось двоеточие?!
Или исходный набор - то, что в результате попало в $arr_of_mail?
Тогда $arr_of_mail надо пропустить через цикл, отделив ip-адрес от '<email-adres>' и к результату уже применить array_count_values().
***
PS: и с цитатой, кстати, ошиблись, нажав на ближайшую кнопку цитирования, которая относится к следующему сообщению Улыбка

(Отредактировано автором: 19 Сентября, 2014 - 12:45:12)

 
 Top
KEFIR4UK
Отправлено: 19 Сентября, 2014 - 12:43:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Промахнулся)Та вместо < я поставил : в файле, но суть то ни меняется)
(Добавление)
RickMan пишет:
вывести в нужном формате.

Додуматься не могу как.Сделал только то что выше)

(Отредактировано автором: 19 Сентября, 2014 - 12:45:22)

 
 Top
Sail
Отправлено: 19 Сентября, 2014 - 12:57:28
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




KEFIR4UK, если получили уникальные адреса, то:
PHP:
скопировать код в буфер обмена
  1. $arr = array_count_values($arr_of_mail);
  2. foreach($arr as $key => $value) {
  3.     echo $key.': '. $value.' раз.<br>';
  4. }
 
 Top
KEFIR4UK
Отправлено: 19 Сентября, 2014 - 13:02:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Sail пишет:
KEFIR4UK, если получили уникальные адреса, то:
PHP:
скопировать код в буфер обмена
  1. $arr = array_count_values($arr_of_mail);
  2. foreach($arr as $key => $value) {
  3.     echo $key.': '. $value.' раз.<br>';
  4. }

Я навереное не правильно обьяснил) Ето я понял как делать, далее нужно добавить к етим дублям айпи адреса которые мылам соответствуют.
 
 Top
Sail
Отправлено: 19 Сентября, 2014 - 13:24:20
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




KEFIR4UK пишет:
нужно добавить к етим дублям айпи адреса которые мылам соответствуют

Тогда можно так сделать (например):
PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2. '77.52.94.232<zvan2009@rambler.ru>'
  3. ,'109.173.98.148<zulus050@rambler.ru>'
  4. ,'188.162.65.108<zinaidacoposova@rambler.ru>'
  5. ,'37.212.57.252<zhannakrapivka@rambler.ru>'
  6. ,'37.212.109.102<zhannakrapivka@rambler.ru>'    
  7. );
  8.  
  9. $arr_of_ = array();
  10. foreach($arr as $value) {
  11.     $arr0 = explode('<', $value);
  12.     $sMail = substr($arr0[1], 0, strlen($arr0[1])-1);
  13.     $arr_of_[$sMail][] = substr($arr0[0], 0, strlen($arr0[1]));
  14. }
  15. foreach($arr_of_ as $key => $value) {
  16.     echo $key.': '.count($value).' : ';
  17.     foreach($value as $val) {
  18.         echo $val.' ';
  19.     }
  20.     echo '<br>';
  21. }
  22.  
 
 Top
KEFIR4UK
Отправлено: 19 Сентября, 2014 - 13:24:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $file=file("test.txt");
  3. for($i=0;$i<=count($file)-1;$i++)
  4. {
  5.         $line=explode(":",$file[$i]);
  6.         $arr_of_ip[]=$line[0];
  7.         $arr_of_mail[]=$line[1];
  8.  
  9.         $c=(array_count_values($arr_of_mail));
  10.          foreach($c as $key=>$value)
  11.          {
  12.                 if(!in_array($key,$file))
  13.                 echo $key."ip___".$arr_of_ip[$i]."Количество повторений".$value."<br>";
  14.          }
  15. }
  16.  
  17.  

Вышло Радость ПРавда записи дублуются почему то Не понял Да и айпихив одной строчке подставляются правильно а потом нет....Что здесь не так?

(Отредактировано автором: 19 Сентября, 2014 - 14:49:11)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB