![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chciałbym aby wyrażenie regularne sprawdzało poprawność linku zaczynającego się od http:// ftp:// lub https:// a kończyło .gif .jpg lub .png mam coś takiego, ale niestety nie działa: Wyr. regularne to dla mnie zawsze zmora :<
|
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat [/.gif|/.jpg|/.png] Chyba powinno być w tę mańkę: [\.gif|\.jpg|\.png] -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 3 Dołączył: 17.05.2004 Skąd: Nowhere Land Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym aby wyrażenie regularne sprawdzało poprawność linku zaczynającego się od http:// ftp:// lub https:// a kończyło .gif .jpg lub .png
Musisz poczytać sobie na temat wyrażeń regularnych, bo mieszasz. Albo poszukaj na google jakiś gotowych wzorców. . -> dowolny znak .* -> dowolny znak dowolną ilość razy .+ dowolny znak przynajmniej jeden raz [-a-z0-9@:]+ -> jeden, lub więcej znaków z tego zakresu [-a-z0-9@:]+. -> j.w. plus _dowolny_ znak po tym ([-a-z0-9@:]+.)+ -> jedna, lub więcej grup znaków powyższych -> zatem tekst d"e$a! też będzie poprawny ([a-z]).* -> ten sam błąd: "weź jedną literę z zakresu a-z i po tym dowolną ilość dowolnych znaków ([a-z]).*+ -> tego nie wiem jak zinterpretować ;] [/.gif|/.jpg|/.png]+ => pomijając źle ustawione znaki escape'u, to powinno być: \.(gif|jpe?g|png) -> bez nawiasów kwadratowych Jeżeli się nie znasz na wyrażeniach regularnych i nie chce Ci się googlać, spróbuj użyć funkcji parse_url" title="Zobacz w manualu PHP" target="_manual i poczytaj komentarze w manualu. Funkcja zwróci ciekawe dane, wśród nich otrzymasz element tablicy path -> to Cię interesuje, możesz później już na wiele sposobów zrobić wyszukiwanie rozszerzenia na końcu tej ścieżki (np. jeżeli nie umiesz wyr. reg. to użyj operacji na stringach -> strrpos" title="Zobacz w manualu PHP" target="_manual i strrpos($path, '.') w połączeniu z substr" title="Zobacz w manualu PHP" target="_manual)
Ale faktem jest, że warto się nauczyć wyrażeń regularnych -> są one o wiele bardziej wyrafinowanym narzędziem niż zwykłe operacje na stringach i dają o wiele więcej możliwości. -------------------- Google prawdę mówi, względów się wyrzeka...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za obszerną odpowiedź. Trzeba będzie wziąć się i ogarnąć;)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 23:34 |