![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 1 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć ponownie (IMG:style_emoticons/default/smile.gif)
Wyrażenia regularne to straszna rzecz, szczególnie jak się jej nie rozumie, dlatego liczę na pomoc, preg_match ma zamieniać adres tak, żeby był w nim "http://" nawet jeśli potencjalny użytkownik wpisze adres.pl bez http. Jak to miałby wyglądać ? preg_match działa na zasadzie tak ? Dziękuje za pomoc (IMG:style_emoticons/default/happy.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Funkcja o którą pytasz, to właściwie nie jest preg_match, a substr_compare (musisz sprawdzić, czy początkowe znaki to http://), ale i tak wypadałoby sprawdzić, czy użytkownik podał poprawny adres URL. Gdybyś dobrze poszukał na php.net (opis funkcji preg_match) znalazłbyś takie wyrażenie regularne dla URL-a (no dobra, usunąłem ftp:// i https:// (IMG:style_emoticons/default/winksmiley.jpg) ):
Pytanie, czy jest Ci ono potrzebne w tak rozbudowanej formie, ale na to sam sobie musisz odpowiedzieć (IMG:style_emoticons/default/winksmiley.jpg) Jeśli jednak potrzebujesz, to możesz je też rozbudować o inne protokoły, np. zmieniając w 1. linijce http na (http|ftp|ssl) itp. Po sprawdzeniu, czy URL jest poprawny, wystarczy mała funkcja:
A tak w ogóle to ja bym się zastanowił, czy nie warto zrobić tego w drugą stronę - obcinając wszędzie "http://" z przodu, żeby się później nie bawić z tymi ukośnikami np. przy zapisie do bazy danych, czy coś (IMG:style_emoticons/default/winksmiley.jpg) No i oczywiście zachęcam do nauczenia się wyrażeń regularnych, bo to baaaaardzo przydatna rzecz (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
A już się chciałem obruszyć na my_salsę i proszę - doczytał mój i poprawił swój post (IMG:style_emoticons/default/winksmiley.jpg)
Jeśli chodzi o to sprawdzanie URL, to rzeczywiście zapomniałem, że są znaki narodowe itp. dopuszczone do użycia w adresach internetowych i nie sprawdziłem tego wyrażenia pod ich kątem, za co przepraszam. Maćku, z moim wyrażeniem Twoi użytkownicy nie będą mogli wpisać strony w stylu "ćąk.pl", chociaż zrobienie takiego adresu jest możliwe. Szczerze mówiąc męczę się już z tym od paru godzin, ale nie umiem znaleźć innego sposobu, niż ręczne dołączenie tych znaków do zakresu. Spodziewałem się, że php zamieni [a-z] albo \w na pełny zestaw znaków, ale jednak nie. Może to kwestia jakichś ustawień locale? Chętnie bym zobaczył, co sądzą o tym bardziej doświadczeni koledzy (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 06:39 |