Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_match - dwa warunki, Może być tak, ale nie tak
adbacz
post 11.10.2011, 17:05:11
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Umiem podstawy wyrażeń regularnych, ale to co potrzebuję zrobić wykracza poza moje granice. Potrzebuję napisać wzorzec, aby sprawdzał, czy podany URL prowadzi do innego serwera, czy jest na naszym. Chodzi konkretnie o to, że nie może być na początku przykładowo http://domena.pl/images/zdjecie_przykladowe.png a, żeby przykład: /images/zdjecie_przykladowe.png z poprzedzającym slashem lub bez niego przechodził bez problemu weryfikację.

Wiem, że jeśli w danym ciągu ma nie być jakiś znaków, to przez znakami w nawiasie stawia się daszek ^, ale jak to zastosować do kilku ciągów: http://, ftp://, https:// itp?

Jesli można to prosiłbym chociaż o wskazówkę, jak wkorzystać ten daszek i znak, który mówi "albo", czyli |.
Go to the top of the page
+Quote Post
CuteOne
post 11.10.2011, 22:28:05
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


poczytaj o parse_url()
Go to the top of the page
+Quote Post
adbacz
post 12.10.2011, 01:19:01
Post #3





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Dzięki CuteOne, ale sama dokumentacja nawet mówi:
Cytat
Ta funkcja nie służy do sprawdzania poprawności podanego URL, tylko rozbija go na podane niżej części.


A ja potrzebuje sprawdzić, czy adres prowadzi do zewnętrznego serwera (http://) czy do naszego (/).
Na razie mam coś takiego:
  1. if(!preg_match('/^(h|f)tt?ps?\:\/\//i', $sImgPath)) {
  2. return false;
  3. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:49