Do jednych z fajniejszych możliwości PHP zdecydowanie należą wyrażenia regularne ( regular expressions ). Pozwalają one na wykonanie bardzo przydatnych operacji np. porównywanie wzorca ze zdobytym ( POSTEM lub GETEM ) ciągiem.
Załóżmy więc, że mamy prosty formularz kontaktowy w którym prosimy potencjalnego użytkownika o wpisanie swojego e-maila:
Mamy nadzieje, że użytkownik wprowadzi swój adres e-mail poprawnie, ale niestety naturą ludzką są błędy, dlatego musimy to jakoś zweryfikować:
// funkcja porównująca zdobyty ciąg z wzorem - preg_match if( isset($_POST['wyslij']) ) { if(preg_match('/^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_]+.[a-z]{2,4}$/D', $_POST['email'])) //porównywanie wzoru { //wysyłamy dane bla bla bla } else { //jak nie to coś zdziałamy może jakiś komunikat ? echo '
Błędny adres e-mail
'; } }
Krótkie wyjaśnienie:
- /^ : znacznik ten oznacza początek ciągu.
- [a-z : oznacza zakres małych liter.
- A-Z : oznacza zakres dużych liter.
- 0-9 : oznacza zakres od 0 do 9.
- .-_ : oznacza możliwe napotkanie na kropkę, myślnik lub dolny podkreślnik.
- @ : wystąpienie małpy.
- . : wystąpienie kropki.
- [a-z]{2,4} : zakres małych liter + {minimalna_długość, maksymalna_długość}.
- $/D : $ – oznacza koniec wyrażenia, a /D oznacza bezwzględny koniec wyrażenia.
Lektura do poduszki: Wyrażenia Regularne