Кто может допилить код PHP - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD64738.8598
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 27.11.2012, 10:33   #1
xatchikzzz
Senior Member
 
Регистрация: 03.12.2009
Сообщений: 138
Бабло: $51655
По умолчанию Кто может допилить код PHP

Цитата:
<?php
#########################################
##
#########################################
set_time_limit(0);
$handle = fopen("emails.txt", "r");
$pattern = "#\.com$|\.info$|\.net$|\.org$|\.us$|\.de$|\.tv$|\ .ws$|\.tr$|\.gov$|\.biz$|\.uk$|\.name$|\.mil$|\.ed u$#"; #маски для домена \.{{EXT}}$, разделитель "|"
$wantEmails = 'good_emails.txt';
$otherEmails = 'other_emails.txt';
while (!feof($handle)){
$email = trim(fgets($handle, 1024));
if (preg_match($pattern, $email, $matches)>0){
file_put_contents($wantEmails, $email .PHP_EOL,FILE_APPEND);
}else file_put_contents($otherEmails, $email.PHP_EOL,FILE_APPEND);


}

fclose($handle);
?>
вот код ... он фильтрует email адреса которые оканчиваются на .com$|\.info$|\.net$|\.org$|\.us$|\.de$|\.tv$|\.ws $|\.tr$|\.gov$|\.biz$|\.uk$|\.name$|\.mil$|\.edu

надо дописать что бы была проверка если ли в строке знак @ , что был конкретный адрес почты ..

кто может допилить немного???
xatchikzzz вне форума  
Старый 27.11.2012, 11:20   #2
Painkiller
Senior Member
 
Регистрация: 09.01.2010
Адрес: ☭
Сообщений: 203
Бабло: $39450
По умолчанию

PHP код:
<?php
#########################################
## 
#########################################
set_time_limit(0);
$handle fopen("emails.txt""r");
$pattern "#\.com$|\.info$|\.net$|\.org$|\.us$|\.de$|\.tv$|\ .ws$|\.tr$|\.gov$|\.biz$|\.uk$|\.name$|\.mil$|\.ed u$#"#маски для домена \.{{EXT}}$, разделитель "|"
$wantEmails 'good_emails.txt';
$otherEmails 'other_emails.txt';
while (!
feof($handle)){
$email trim(fgets($handle1024));
if (
filter_var($emailFILTER_VALIDATE_EMAIL) ){
file_put_contents($wantEmails$email .PHP_EOL,FILE_APPEND);
}else 
file_put_contents($otherEmails$email.PHP_EOL,FILE_APPEND);


}

fclose($handle);
?>
ты где этот код взял?
Painkiller вне форума  
Старый 27.11.2012, 11:25   #3
xatchikzzz
Senior Member
 
Регистрация: 03.12.2009
Сообщений: 138
Бабло: $51655
ТС -->
автор темы ТС По умолчанию

знакомый один помог .. но щас его нету

если можешь подправь или по новой сделать.. там смысл такой что бы отфильтровать базу маилов и выберать только те которые оканчиваются на com , еdu org info и тд и что бы проверка была на наличие @ ... если всё есть записывать в папку good_emails.txt если какое то условие не выполняется то в 'other_emails.txt'
xatchikzzz вне форума  
Старый 27.11.2012, 12:09   #4
Platosha
Юниор
 
Аватар для Platosha
 
Регистрация: 25.03.2012
Сообщений: 1,069
Бабло: $339980
По умолчанию

ну по идее, стоит найти в инете регулярку на проверку почты и сделать эту проверку в коде )
Platosha вне форума  
Старый 27.11.2012, 12:15   #5
xatchikzzz
Senior Member
 
Регистрация: 03.12.2009
Сообщений: 138
Бабло: $51655
ТС -->
автор темы ТС По умолчанию

непройдёт ...

в стречаются строки такого типа

mail@mail

без доменной зоны .. а регулярки тащут это как нормальную почту..
xatchikzzz вне форума  
Старый 27.11.2012, 12:30   #6
Platosha
Юниор
 
Аватар для Platosha
 
Регистрация: 25.03.2012
Сообщений: 1,069
Бабло: $339980
По умолчанию

ну сначала проверка на почту, потом проверка на зону ) Не? )
Platosha вне форума  
Старый 27.11.2012, 15:07   #7
Painkiller
Senior Member
 
Регистрация: 09.01.2010
Адрес: ☭
Сообщений: 203
Бабло: $39450
По умолчанию

поправил же, не?)
Painkiller вне форума  
Старый 28.11.2012, 16:34   #8
DimaX
Senior Member
 
Регистрация: 19.04.2007
Сообщений: 2,393
Бабло: $314345
По умолчанию

PHP код:
<?php

set_time_limit
(0);

$emails array_unique(array_map('trim'file('emails.txt')));

$pattern "#\.com$|\.info$|\.net$|\.org$|\.us$|\.de$|\.tv$|\.ws$|\.tr$|\.gov$|\.biz$|\.uk$|\.name$|\.mil$|\.edu$#";

$f1 fopen('good_emails.txt''a');
$f2 fopen('other_emails.txt''a');

foreach (
$emails as $email)
    {
        if (
strpos($email'@') > && preg_match($pattern$email))
            {
                
fwrite($f1$email."\n");
            }
            else
            {
                
fwrite($f2$email."\n");
            }
    }

fclose($f1);
fclose($f2);
?>
DimaX вне форума  
Старый 28.11.2012, 17:46   #9
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

PHP код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

mails_file 'mails.txt'
filter = ['com''info''net''org''us''de''tv''ws''tr''gov''biz''uk''name''mil''edu']
print 
'\n'.join([x.rstrip() for x in open(mails_file).readlines() if '@' in x and x[x.rfind('.') + 1:].rstrip() in filter]) 
как то так )
masolit вне форума  
Старый 28.11.2012, 18:02   #10
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

или так

PHP код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import string

mails_file 
'mails.txt'
filters = ['com''info''net''org''us''de''tv''ws''tr''gov''biz''uk''name''mil''edu']
print 
'\n'.join(filter(lambda x'@' in x and x[x.rfind('.') + 1:] in filtersmap(string.stripopen(mails_file).readlines()))) 
masolit вне форума