Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyrazenia regularne - dopasowanie URL
neo1986kk
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


Witam mam takie zagadnienie i od 2 dni się męczę z wymyśleniem jak się domyslam prostego wzorca

Powiedzmy że chcę aby preg_match przepuszczał mi tylko i wyłącznie taki zestaw znaków


To jest adres który ma przepuszczać
http://www.domena.pl/tresc1/tresc2

Oczywiście trzeba wziąć pod uwagę to że może nie być http:// czy www a kończyć może się również znacznikiem /
czyli

domena.pl/tresc1/tresc2
www.domena.pl/tresc1/tresc2
http://domena.pl/tresc1/tresc2/
http://www.domena.pl/tresc1/tresc2/

To adresy które przejdą, ale

http://innadomena.pl/tresc1/tresc2
http://domena.pl/tresc1/tresc2/tresc3

już nie przejdą

ja to sobie wymyśliłem tak:
1. początek moze być obojętnie jaki
2. musi być napis domena.pl
3. po nim znak /
4. i na końcu 2 razy dowolna ilość znaków rozseparowanych znakiem /

  1. @^(.*[domena.pl])\/([a-zA-Z0-9-]+?\/){2}$@


Niestety to nie działa, proszę o pomoc w tym zagadnieniu
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


  1.  
  2. $urls = array(
  3. 'http://www.domena.pl/tresc1/tresc2',
  4. 'www.domena.pl/tresc1/tresc2',
  5. 'http://domena.pl/tresc1/tresc2',
  6. 'domena.pl/tresc1/tresc2',
  7. 'http://www.domena.pl/tresc1/tresc2/',
  8. 'www.domena.pl/tresc1/tresc2/',
  9. 'http://domena.pl/tresc1/tresc2/',
  10. 'domena.pl/tresc1/tresc2/', // tu się kończą poprawne adresy (ten jest ostani dobry)
  11. 'http://www.domena.pl/tresc1/',
  12. 'www.domena.pl/tresc1/',
  13. 'http://domena.pl/tresc1/',
  14. 'domena.pl/tresc1/',
  15. 'http://www.strona.pl/tresc1/tresc2',
  16. 'www.strona.pl/tresc1/tresc2',
  17. 'http://strona.pl/tresc1/tresc2',
  18. 'strona.pl/tresc1/tresc2',
  19. // itd...
  20. )
  21.  
  22. foreach($urls AS $url) {
  23. echo 'Sprawdzam adres ' . $url . '<br/>';
  24. if(preg_match('#^(http://)?(www\.)?domena\.pl/([^/]+)/([^/]+)/*$#i',$url,$match)) {
  25. echo 'tresc1: ' . $match[3] . '<br/>'; // tresc1
  26. echo 'tresc2: ' . $match[4] . '<br/>'; // tresc2
  27. } else {
  28. echo 'Nieprawidłowy adres!<br/>';
  29. }
  30. }
  31.  


HTH wink.gif

EDIT: Proszę o nauczenie się wyrażeń regularnych smile.gif Proponuje tutaj

Ten post edytował Sephirus 5.04.2012, 08:09:00


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Kod
'/(http:\/\/)?([a-z0-9\-\_\.]+)?domena.pl([a-z0-9\-\_\/]+)?\//i'


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
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 Aktualny czas: 20.08.2025 - 06:25