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. Po jej dodaniu filtr działa już sprawnie.
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ę :-)
mati napisał: 02.10.09 o godzinie 10:10
nie mam czasu sprawdzić, ale czy filter przepuści mail:
mati@jakas-tam-bardzo-dluga-domena-ktora-moze-byc-i-pewnie-jest-duzo-dluzsza-od-innych-co-nie-oznacza-ze-jest-bledna-ale-rowniez-nie-oznacza-ze-jest-poprawna-wlasciwie-to-ta-konkretna-jest-akurat-bledna.pl
MariuszT napisał: 02.10.09 o godzinie 10:29
Ty, ja też nie mam czasu
Sprawdziłem, niestety przepuścił… Doskonałe to to nie jest jak widać… Trzeba chyba im zgłosić.
Jak ktoś chce podpatrzeć jak te filtry działają to zapraszam tutaj http://svn.php.net/viewvc/php/....._filters.c
Michał napisał: 02.10.09 o godzinie 20:27
Bardzo ładnie “rozkręciłeś/casz” portal nasztomaszow.pl. W miom mieście nie ma takiego portalu.
Sam napisał bym skrypt tylko kto będzie dodawał newsy. Wortal odpada – kto by chcał dodawać rzetelne newsy.
PS Serwer musisz mieć dobry, żeby do ogłoszeń dodawać masę obrazków.
Ołoszenia będą na wieczność, czy kasują się same po jakimś czasie?
MariuszT napisał: 02.10.09 o godzinie 20:57
Dzięki za miłe słowa ale faktycznie oprogramowanie to tylko część sukcesu. Trzeba mieć redakcję, bez treści nie da się zrobić nic dobrego. Z nasztomaszow.pl tak się akurat złożyło, że spotkały się odpowiednie osoby i wszyscy się starają jak mogą a przede wszystkim znają się na swojej robocie, dlatego są efekty.
Serwer jest dobry ale nie też jakiś mega full wypas
Stronę zoptymalizowałem, praktycznie nie generuje żadnego obciążenia. Dla przykładu strona główna generuje dziennie zaledwie kilkadziesiąt zapytań do bazy danych. Tyle to niektóre strony mają przy każdej odsłonie. A znam takie co mają kilkaset (rekord powyżej 1200
).
Jeżeli chodzi o zdjęcia to tu raczej mowa tylko o transferze, który niestety trochę kosztuje… Na razie mieszczę się w limitach na moje konto chociaż niedługo chyba zacznie się dopłacanie. Zastanawiam się czy nie przenieść zdjęć na inny, tani serwer albo w jakąś chmurę ale póki co nie są to jeszcze tak duże pieniądze aby warto było się męczyć.
Podczas dodawania ogłoszeń użytkownik wybiera jak długo ogłoszenie ma być ważne (max to 30 dni). Potem będzie możliwe odnowienie ogłoszenia, w swoim panelu. Jak tylko go zrobię
Michał napisał: 09.10.09 o godzinie 17:16
Z jakiego skryptu galerii korzystasz?
Bardzo mi się spodobał, to coś na jQuery?
Jakbyś mógł to podaj nazwę. Dziękuję.
MariuszT napisał: 09.10.09 o godzinie 23:33
Wystarczyło zajrzeć do źródła…. http://coffeescripter.com/code/ad-gallery/
Uważam, że to bardzo dobry skrypt i poświęciłem wiele czasu na jego znalezienie. Wcześniej używałem innego ale tamten ładował tuż po wejściu na stronę wszystkie zdjęcia. To było niedopuszczalne, zjadało dużo transferu i przy większych galeriach wymagało sporej cierpliwości od odwiedzających nim wszystko się załadowało. Niestety większość galerii tak działa, autorzy dają się naciągnąć na “fajny bajer” aby miniaturki były generowane w locie, po stronie przeglądarki. Niby to miłe ale efekty uboczne są takie jak opisałem powyżej.