PHP Filter Functions
30 września 2009
Coś ostatnio nie mam czasu na pisanie na blogu, na nic nie mam czasu... A pomysłów na tematy wiele...
Dzisiaj jest jednak okazja
Uruchomiłem ogłoszenia na NaszTomaszow.pl nad którymi ostatnio pracowałem a przy okazji natrafiłem na ciekawy element PHP o którym trzeba napisać kilka słów.
Już trochę czasu minęło od premiery PHP 5.3 tymczasem jakimś sposobem nie zauważyłem bardzo ciekawego rozwiązania, które wprowadzono w PHP 5.2.
Często w procesie budowania stron www spotykamy się z problemem poprawnej walidacji adresu e-mail, adresu www czy IP. Użytkownik nam się rejestruje i my musimy być pewni, że ten e-mail to naprawdę e-mail a nie coś w stylu "pocałujcie mnie w dupę"
Jak sprawdzić poprawność danego ciągu znaków? Oczywiście kłaniają się, tak przeze mnie ostatnio lubiane, wyrażenia regularne. Przeważnie mamy kilka opcji do wyboru:
- Napisać własne (jak żeś głupi to się męcz
- Poszukać czegoś w google
- Poszukać czegoś w swoich poprzednich projektach
Pierwszego nie będę komentował
No chyba, że się uczysz i chcesz spróbować własnych sił to możesz się pobawić... Ale lepiej poszukać gotowca w sieci lub mieć gdzieś w dalekich zakątkach swojego dysku jakąś funkcję i używać jej w razie potrzeby.
Której metody byście nie użyli to mam lepsze rozwiązanie
Z pomocą przychodzi PHP 5.2 i funkcja filter_var (i ogólnie funkcje filtrujące).
Z czym to się je? Prosty przykład:
-
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
-
// błędny e-mail, obsłuż błąd
-
}
Zawsze jedna funkcja, zawsze działa tak samo, wbudowana w parser i ktoś inny martwi się żeby działała poprawnie czyli nie musisz się zastanawiać czy aby na pewno znalezione/napisane przez Ciebie wyrażenie regularne jest poprawne. Kolejna funkcja, która mi ułatwi życie a przeciwnikom PHP da argument, że język ten ma mnóstwo funkcji w których można się pogubić i które rozleniwiają programistę. Świat jest piękny
Przydatne linki:
Lista wszystkich funkcji filter_* - pl2.php.net/manual/en/ref.filter.php
Lista dostępnych filtrów i ich opisy - pl2.php.net/manual/en/filter.filters.php
PS
Z jakiegoś powodu filtr FILTER_VALIDATE_URL przepuścił u mnie taki ciąg znaków "http://111111". Dziwne... Sam dodatkowo musiałem zatroszczyć się o sprawdzenie czy jest chociaż jedna kropka.
Blog przede wszystkim o Internecie i mojej pasji jaką jest tworzenie stron www. Ale nie ograniczam się do jednej tematyki, piszę o wszystkim o czym mam ochotę :-)