Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Wyciąganie domeny z napisu
craker
post 2.11.2007, 22:55:44
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 7.07.2006

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


Witam,
napisałem sobie skrypt do wyciągania domeny z podanego adresu
Kod
preg_match ('#http:\/\/(www\.)?(.+?)\/#si' , $ala, $key);

czyli w $key[2] mam domenę i skrypt radzi sobie dobrze w przypadku adresu
http://www.adres.pl i http://adres.pl, ale gdy mam adres http://cos.adres.pl i http://www.cos.adres.pl to już jest problem, próbowałem dołożyć po www, że może wystąpić ciąg liter ale wtedy mi łapie też adres jeżeli teskt będzie adres.pl.
jak przerobić to wyrażenie tak aby z linków:
Kod
http://www.adres.pl
http://adres.pl
http://www.adres.pl/cos
http://adres.pl/cos
http://www.cos.adres.pl/
http://cos.adres.pl/

i innych kombinacji zawsze dawało samo adres.pl questionmark.gif

Dzięki za pomoc


--------------------
narazie brak sygnaturki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rolnix
post 4.11.2007, 10:27:17
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 16.04.2005
Skąd: Białowieża

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


  1. <?php
  2. function wyciagaj($str) {
  3. $fslash = strpos($str, '/');
  4. if ($fslash !== false) {
  5. if ($str[$fslash+1] == '/') $fslash++;
  6. $str = substr($str, $fslash+1);
  7. $fslash = strpos($str, '/');
  8. if ($fslash !== false) {
  9. $str = substr($str, 0, $fslash);
  10. }
  11. }
  12. $m = explode('.', $str);
  13. if (count($m) > 1) {
  14. return $m[count($m)-2].'.'.$m[count($m)-1];
  15. } else return $m[0];
  16. }
  17.  
  18.  
  19. echo wyciagaj('http://www.adres.pl');
  20. echo'<br>';
  21. echo wyciagaj('http://adres.pl');
  22. echo'<br>';
  23. echo wyciagaj('http://www.adres.pl/cos/cosssss.txt?cos=cos');
  24. echo'<br>';
  25. echo wyciagaj('http://adres.pl/cos');
  26. echo'<br>';
  27. echo wyciagaj('http://www.cos.adres.pl/');
  28. echo'<br>';
  29. echo wyciagaj('http://cos.adres.pl/');
  30. echo'<br>';
  31. echo wyciagaj('http:/cos.adres.pl/');
  32. ?>


Może i lamersko, ale bez PCRE. Powyższy kod siedem razy wyprodukował napis "adres.pl".


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 20:59