PHP – Wyrażenia regularne część I

agency

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