PHP - sprawdzanie poprawności podanego adresu e-mail
| DZIAŁANIE: | Podany adres e-mail ma poprawną składnię! |
Kod:

Ewentualne Objaśnienia:
Aby zrozumieć pewną istotę działania tego przykładu należy zapoznać się z czymś takim jak wyrażenie regularne!
A więc moi drodzy - wyrażenia regularne :
Najprostszą metodą określenia takiego wyrażenia jest wypisanie jego wszystkich
znaków po kolei. No jednak to nie jest zbyt ciekawa i dobra metoda. Czasem
jednak nie wystarcza nam jeden łańcuch znaków lecz pewne, że tak powiem
podłańcuchy połączone w jeden - czyli jak tutaj w e-mailu jest pewna struktura
adresu e-mailowego, która jest prawidłowa. No i dlatego w PHP są pewne
funkcje odnośnie wyrażeń strukturalnych, są to : ereg(), eregi(), ereg_replace(),
eregi_replace(), split(), spliti()
W wyrażeniach regularnych mamy 2 rodzaje znaków:
- znaki zwyczajne czyli takie jak a,b,c,d,5,6,7 itd itd - zwykłe
- znaki niezwyczajne czyli są to : ^,$,*,+,?,.,(,),[,],{,},\, ...
Jeżeli chcemy aby jakiś specjalny znak stał się po prostu znakiem ( a nie miał jakieś tam swoje specjalne znaczenie ) poprzedzamy go ukośnikiem na przykład dla kropeczki : \.
Teraz co znaczą te nasze znaki niezwyczajne :
- kropka - oznacza obojętnie jaki, dowolny znak - na przykład zapis r.k - tutaj
pasuje na przykład rak, rad, ryk, albo ".a." pasuje ola, cola, kopaczka - itd
itd - czyli zamiast kropki dajemy dowolny znak ( czy też ich więcej - w tym
przykładzie ograniczenia nie ma )
- Jeśli dane wyrażenie ma się znajdować na początku łańcucha, poprzedzamy je
znakiem ^
- natomiast wszystko to co stoi przed znakiem dolara : $ - traktujemy jako
koniec ciągu znaków
- Gwiazdka * opisuje dowolną ilość tego co przed nią akurat jest czyli na
przykład b.*l - baaaaal, boooool, byyyyyyl itd itd
- Plusik - + znaczy tyle co gwiazdka * ale występuje to przynajmniej raz
- znak zapytania ? znaczy, że to co przed nim jest może wystąpić tylko raz lub w
ogóle
- nawiasy klamrowe {} - działanie można by porównać do zaawansowanego działania
gwiazdki, plusa czy tam pytajnika. W nawiasie klamrowym podajemy dokładną liczbę
powtórzeń tego co stoi przed nim. Możemy także podać dwie liczby oddzielone
przecinkiem, co oznacza powtórzenie wyrażenia minimalnie tyle razy ile pierwsza
liczba, a maksymalnie tyle ile druga.
- nawiasy () - możemy pewne części umieszczać w nawiasach okrągłych (tzw. Atom)
Ma to taki sam cel jak w zapisie matematycznym. Chodzi o to by działanie
jakiegoś 'niezwyczajnego' znaku wpływało na większą część wyrażenia
- kolejne są nawiasy kwadratowe czyli tzw zakresy. Podaje się w nich zestaw
znaków mogących wystąpić w danym miejscu na przykład : [jkg]{5} -
pięcioliterowy wyraz złożony tylko i wyłącznie z liter jkg. W tych nawiasach
kwadratowych można też podyać przedział znaków. Robimy to wpisując dwa znaki
oddzielone myślnikiem. Ważne aby znakowi przed myślnikiem odpowiadał mniejszy
kod Asci od znaku po nim, np: [A-Z] - duże litery, [a-z] - małe
litery, [0-9] - cyfry
- jeśli chcemy uzyskać Polskie znaki najlepiej jest je wszystkie wypisać :
[0-9a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ] - wszystkich cyfry, małe i duże litery, małe i
duże polskie znaki
- jak nam trzeba znak myślnika, który normalnie używany jest do określania
przedziałów znaków - umieszczamy go na pierwszej lub ostatniej pozycji w
nawiasach kwadratowych.
W PHP stosować można także tzw. character classes - zdefiniowane
zbiory znaków :
- [[:alpha:]] - wszystkie litery
- [[:alnum:]] - wszystkie litery oraz cyfry
- [[:digit:]] - cyfry
- [[:xdigit:]] - liczby w systemie szesnastkowym
- [[:lower:]] - małe litery
- [[:upper:]] - wielkie litery
- [[:punct:]] - znaki interpunkcyjne
- ^ - wpisany na 1 miejscu wewnątrz nawiasów kwadratowych znaczy
negację całego zakresu
- w wyrażeniach regularnych pomiędzy znakami czy zakresami czy też naszymi
atomami możemy postawić znak "|" - oznacza logiczną operację 'OR' ( lub )
Jeżeli pojęliście logikę wyrażeń regularnych - zapewne łatwo Wam teraz
zinterpretować przedstawiony kod, a dokładnie działanie funkcji, którą już
znacie - czyli ereg .
Na pewno może być to przydatne na przykład przy wysyłaniu jakiegoś formularza
przez naszego klienta, użytkownika czy odwiedzającego - po wysłaniu sprawdzamy
sobie czy podany adres e-mail jest poprawny, jeżeli tak wysyłamy dalej formularz
- jeżeli nie - powiadamiamy o tym i oczekujemy ponownego wypełnienia formularza
.