Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Preg_match do określnego znaku
vegeta
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


  1. preg_match_all('#href="(http://[^/"]+[/]?)"#is', $stripped_file, $matches);


Chcę, aby sprawdzało mi do pierwszego / po domenie tak jak jest teraz, ale nie chcę już, żeby wliczało mi te ostatnie /, ponieważ mam dużo duplikatów np. http://adres.pl/ i http://adres.pl.

Wszystkie linki mają wyglądać tak: http://adres.pl (nawet jeśli w adresie nie ma / na końcu).

W ostateczności jeśli nie da się zrobić tego o co proszę to chciałbym, aby sprawdzało do .pl (bez / na końcu) i innych domen, które sobie wybiorę (proszę mi napisać jak dodać kolejne domeny, ponieważ z preg_match mam trochę problemów).
Go to the top of the page
+Quote Post
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Kod
#href="(http://[a-zA-Z\.]+)/?#is


P.S. Następnym razem daj jakiś przykładowy ciąg do testowania (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
vegeta
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


Dzięki wielkie.

Ale jest błąd w tym rozwiązaniu:
1. Skrypt akceptuje linki typu http://adres.pl?blaaa np. http://sklep.gry-online.pl?utm_sourc(...), http://www.skrypty.komputerpc.pl?klucz=wyswietl

2. Skrypt nie akceptuje linków np http://it-maniak.pl/ rozwiązaniem jest zmienienie "środka" na http://[^/"]+

Do testów:

  1. $strona = "http://www.skrypty.komputerpc.pl/";
  2. $original_file = file_get_contents($strona);
  3.  
  4. $stripped_file = strip_tags($original_file, "<a>");
  5. preg_match_all('#href="(http://[^/"]+)/?"#is', $stripped_file, $matches);
  6.  
  7. $unikat = array_unique($matches[1]); //Usuwa powtarzajace sie wartosci
  8.  
  9. header("Content-type: text/plain"); //Aby test ładnie się czytało :)
  10. print_r($unikat);


Ten post edytował vegeta 8.02.2011, 16:24:22
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: 23.08.2025 - 18:38