![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 28.01.2004 Skąd: że znowu ლ(ಠ益ಠლ Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
poszukuję najlepszego sposobu na walidację adresów stron w skrypcie PHP. Robię klasę więc wersja obiektowa będzie mile widziana. Próbowałem już funkcji parse_url oraz filter_var - niestety, obie przepuszczają niepoprawne adresy (pomijając fakt, że parse_url nie służy do walidacji). Chciałbym się więc skierować w stronę wyrażeń regularnych, ale w wielu przypadkach użytkownicy to odradzają. Dlaczego? Znalazłem takie wyrażenie regularne:
z jednej strony jest okropnie długie i jego wykonanie może być zasochłonne, ale z drugiej strony - nie przepuści żadnego błędnego URLa. Jeśli mogę to samo uzyskać krótszym i prostszym kodem, to chętnie skorzystam, tylko błagam... nie odsyłajcie do szukajek - większość linków (nawet do Zenda w innym temacie na forum) jest już nieaktualnych, albo proponują tam rozwiązanie przepuszczające np. http://www.. (dwie kropki na końcu) Na dłuższy czas porzuciłem tę kwestię, ale znowu muszę się nią zająć... Nadal poszukuję niezawodnego sposobu parsowania URLi. Wyrażenie, które podałem w powyższym poście przepuszcza adresy typu: Kod http://www.kbrg. (z kropką i bez kropki na końcu)http://www.kbrg Próbowałem też regexpy ze strony http://mathiasbynens.be/demo/url-regex ale nie potrafię dostosować ich do PHP - ciągle wywala mi jakiś błąd (IMG:style_emoticons/default/sad.gif) Jakieś pomysły? Ten post edytował tomilipin 31.08.2013, 15:30:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 22 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Pozwole się wtrącić w waszą dyskusję.
Dlaczego próbujecie napisać metodę perfekcyjną do sprawdzenia poprawności adresu url ? Według mnie każdy ma inne potrzeby i robi portal dla innych ludzi. Jednemu będą pasowały linki z konkretnej domeny, innemu z całego świata (wystarczy że serwer odpowie) itd. Według mnie trzeba iść tropem dania narzędzia które w drobnym stopniu pomoże zwalidować adres jednak nie ograniczy programisty (nie wiem jak wy ale ja tych regexpów na pierwszy rzut oka nawet nie rozumiem). Osobiście skłaniałbym się w kierunku prostej klasy która tak jak u @sowiq'a sprawdzi poprawność domen i protokołów, a resztę pozostawi do decyzji użytkownika. Według mnie sposób @timon27 jest dobry do określonych sytuacji (osobiście bym chciał aby linki na moim serwisie nie prowadziły do 404..). I nie powiniście go wykluczać całkowicie. Poniżej zamieszczam link do repo w którym daje swoje rozwiazanie. Na 100% nie jest idealne jednak wydaje mi się że jak komuś czegoś będzie w nim brakować to sobie zdziedziczy po mojej klasie / dopisze helper i po sprawie. https://svn.code.sf.net/p/urlvalidate/code/...k/YourFrog/Url/ Zamieściłem przykładowe testy z informacja czy przechodzą czy nie więc łatwiej można sprawdzić poprawnośc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 09:55 |