Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrazenia regularne - dopasowanie URL
Forum PHP.pl > Forum > Przedszkole
neo1986kk
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
Sephirus
  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
!*!
Kod
'/(http:\/\/)?([a-z0-9\-\_\.]+)?domena.pl([a-z0-9\-\_\/]+)?\//i'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.