Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi (1 - 2)
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 (IMG:style_emoticons/default/wink.gif)

EDIT: Proszę o nauczenie się wyrażeń regularnych (IMG:style_emoticons/default/smile.gif) Proponuje tutaj

Ten post edytował Sephirus 5.04.2012, 08:09:00
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'
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 16:08