Login lub e-mail Hasło   

Sprawdzanie poprawnosci emaila - parsowanie maila

Przesiadując na forach internetowych bardzo często widzę pytania odnośnie wyrażeń regularnych, które sprawdzają poprawność maila. Dzisiaj przyszło mi na myśl stworzyć sw&...
Wyświetlenia: 8.123 Zamieszczono 10/12/2007

Przesiadując na forach internetowych bardzo często widzę pytania odnośnie wyrażeń regularnych, które sprawdzają poprawność maila. Dzisiaj przyszło mi na myśl stworzyć swój pierwszy artykuł tutaj i z każdym takim pytaniem na forum kierować ludzi do tego artykułu. Dziś, w tym artykule opiszę dokładnie funkcję, która parsuje maila zwracając tablicę zawierającą kolejno adres email, login i domenę w mailu. W przypadku niepowodzenia zwróci false. Wynik parsowania można zwrócić na dwojaki sposób – w zwykłej tablicy indeksowanej numerycznie lub w tablicy asocjacyjnej.

Funkcja wygląda tak:

    1. function mail_parser($str, $opt=0) {
    2.       preg_match('#^([a-zA-Z0-9_.-]*)\@([a-zA-Z0-9_.-]*)$#', $str, $tmp);
    3.       if($opt == 0) {
    4.             if((empty($tmp[1]) === false) && (empty($tmp[2]) === false)) {
    5.                   return $tmp;
    6.             } else {
    7.                   return false;
    8.             }
    9.       } else {
    10.             if((empty($tmp[1]) === false) && (empty($tmp[2]) === false)) {
    11.                   $tmp2['mail']    = $str;
    12.                   $tmp2['login']   = $tmp[1];
    13.                   $tmp2['domen']   = $tmp[2];
    14.                   return $tmp2;
    15.             } else {
    16.                   return false;
    17.             }
    18.       }
    19. }
Linijka 1 to oczywiście definicja funkcji. Przyjmuje ona dwa parametry [adres email i numer opcji zwracanych wyników] z czego drugi jest opcjonalny ponieważ zadeklarowaliśmy jego domyślną wartość. Innymi słowy parametr drugi nie jest wymagany przy wywoływaniu funkcji. Gdy nie podamy drugiego parametru przyjmie on domyślną wartość zadeklarowaną w tej linii.

Linijka 2 to wyrażenie regularne, które sprawdza poprawność emaila i rozgranicza wynik na parę komórek tablicy. Możesz na końcu wyrażenia [przed zamknięciem okrągłego nawiasu] dodać wartość: [pl] aby ograniczyć maile do tych w domenie .pl. Wynik zostaje zwrócony w zwykłej tablicy w zmiennej $tmp.

Linijka 3 – 8 to jak widać sprawdzanie czy tablica $tmp nie jest pusta, czyli czy mail jest poprawny, ale najpierw sprawdzona zostanie zmienna $opt przechowująca informację jaką opcję zwracanych danych wybrałeś/łaś. Wynikiem tych linijek jest zwrócenie przez funkcję informacji dotyczących maila [w przypadku poprawności wprowadzonego maila] lub zwrócenie false [w przypadku nieprawidłowego maila].  Linijka 10 – 17 to ten sam przypadek co poprzednio jednak zwracana jest tablica asocjacyjna [w przypadku poprawności wprowadzonego maila] lub false [w przypadku nieprawidłowego maila].

Kilka przykładów użycia wraz z wynikami:

$m     = 'jan.kowalski@domena.pl';
# przyklad 1:
print_r(mail_parser($m));
# przyklad 2:
print_r(mail_parser($m, 0));
# przyklad 3:
print_r(mail_parser($m, 1));
$m     = 'jan.kowalski@';

# przyklad 4:
print_r(mail_parser($m, 0)); // zwróci false
# przyklad 5:

print_r(mail_parser($m, 1)); // zwróci false

 


 
# przyklad 1:
Array (
    [0] => jan.kowalski@domena.pl
    [1] => jan.kowalski
    [2] => domena.pl
)

 
# przyklad 2:
Array (
    [0] => jan.kowalski@domena.pl
    [1] => jan.kowalski
    [2] => domena.pl
)

 
# przyklad 3:
Array (
    [email] => jan.kowalski@domena.pl
    [login] => jan.kowalski
    [domen] => domena.pl
)
 

To wszystko.Miłego użytkowania.

Pozdrawiam.

P.S. Artykuł udostepniam na licencji CC, zaś kod na licencji GNU GPL

Podobne artykuły


46
komentarze: 15 | wyświetlenia: 47681
8
komentarze: 2 | wyświetlenia: 6267
26
komentarze: 23 | wyświetlenia: 8254
5
komentarze: 0 | wyświetlenia: 1551
18
komentarze: 22 | wyświetlenia: 3300
26
komentarze: 4 | wyświetlenia: 1363
17
komentarze: 5 | wyświetlenia: 6314
16
komentarze: 5 | wyświetlenia: 8987
9
komentarze: 0 | wyświetlenia: 2765
13
komentarze: 2 | wyświetlenia: 22940
15
komentarze: 5 | wyświetlenia: 32708
8
komentarze: 2 | wyświetlenia: 27406
8
komentarze: 5 | wyświetlenia: 18538
 
Autor
Artykuł
Dodatkowe informacje



Oczywiście po sprawdzeniu mail'a tą metodą, warto jeszcze sprawdzić czy istnieją wpisy MX na serwerze docelowym.

Mógłbyś napisać coś więcej o wpisach MX, bo wstyd się przyznać, ale nigdy się tym nie zainteresowałem.



Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2018 grupa EIOBA. Wrocław, Polska