![]() |
![]() |
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Dzięki za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Wskazówka: wycinaj wszystko przed drugim (bądź pierwszym) i ostatnim znakiem "/", włącznie z nim samym. Potem pokrój wszystko poza ciągami sąsiadującymi z ostatnią z kolei kropką - w tym przypadku tymi ciągami będą "adres" i "pl". Napisałbym do tego kod, ale wybacz - już praktycznie usypiam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ten post edytował rolnix 2.11.2007, 23:14:10 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 1 Dołączył: 7.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
wybaczam, ale jak się przebudzisz i byłbyś tak miły to bardzo bym prosił o kod (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Może i lamersko, ale bez PCRE. Powyższy kod siedem razy wyprodukował napis "adres.pl". |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 1 Dołączył: 7.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
dzięki wielkie naprawdę
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Nie ma za co (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Tylko nie chodzi o to, byś tylko skopiował tę funkcję; przeanalizuj sobie ją w spokoju - dobre ćwiczenie na przyszłość (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 1 Dołączył: 7.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
przepisałem trochu po swojemu, ale dziś mój system się wywalił, nie przewidziałem tego, a mianowicie jeśli mamy domenę
Kod www.adres.com.pl albo Kod adres.net.pl to skrypt pokazuje jako domenę główną odpowiednio com.pl i net.pl co w tym wypadku jest nie do zaakceptowania. Możesz mi pomóc jeszcze z tym (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Dzięki |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Czy ten "adres" to jest zawsze jakaś konkretna wartość? Szukasz czegoś? Czy ogólnie chcesz po prostu domeny wyciągnąć? Jeśli to drugie to moim zdaniem nie da się. Co najwyżej pełną nazwę, czyli adres.pl ale i cos.adres.pl. I wtedy prosto za pomocą:
Bo cos.adres.pl może być równie dobrze pełną nazwą jakiejś domeny, jak zmienną częścią domeny adres.pl (realizowane np przez virtual host) i skąd php ma to wiedzieć? No, chyba że dla każdej podanej wartości sprawdzał by to na serwerach dns... |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 1 Dołączył: 7.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
musi być adres samej domeny, czyliadres.pl, adres.com.pl itp, bo najego podstawie mam napisany mechanizm sprawdzania poprawności klucza licencyjnego, który jest przypisany strikte do domeny właśnie
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
a jak byś ściągnął listę TLD i wyciągał wszystko przed tld..(pierwsze słowo przed TLD).. np skrypt z wyrażenia ala.makota.gm wyciąga tylko makota i gm(bo makota to pierwszy wyraz przed TLD) potem łączysz w całość...
Napewno gdzieś w necie będzie lista TLD... o. np. to http://techdictionary.com/domainlist.html lub to:) http://www.domainnews.pl/tld-list/ albo to http://www.google.pl/search?q=%22lista+tld Ten post edytował dadexix 20.11.2007, 09:01:58 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Musiałby rozbijać ciąg według kropki, a to się nie uda, bo jak napisałem nie wiem, czy cos.adres.pl to jest pełna nazwa domeny czy może 'cos' to określenie subdomeny.
Ten post edytował drPayton 20.11.2007, 11:17:09 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Nie wnikam w szczegóły techniczne, bo specem nie jestem, ale podam prosty przykład:
del.icio.us Zgodnie z Tym co mówicie, @craker otrzyma jedynie icio.us, a chyba nie o to chodzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował drPayton 20.11.2007, 14:26:24 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 1 Dołączył: 7.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
dokładnie. problem jest w tym że jak mam adres moja-strona.net.pl, to zwróci mi samo net.pl, a w tym przypadku nie jest to adres strony. co do tld to nie bardzo to jest możliwe, bo skrypt klienta sprawdza domene z kluczem jaki dostanie ode mnie i na tej podstawie sprawdzane jest czy skrypt zostal zakupiony czy nie, calosc zakodowana jest zendem wiec nikt nic nie widzi, ale dodajac za duzo nie potrzebnie zwiekszam objetosc plikow a tutaj chodzi o cos prostego,ato jest najlepsze zabezpieczenie wg. mnie
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 22 Dołączył: 19.09.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Taka nieśmiała prozpozycja, bo nie mam na chwilę obecną możliwości sprawdzenia czy to w ogóle ma sens, ale może jakimś wyjściem byłoby sprawdzać URL od końca pod kątem tego czy istnieje odpowiedź serwera z podanego adresu. Pierwszy argument (w URL ostatni) z góry pominąć jako TLD.
Dla przykładu sprawdznie adresu: "subdomena.domena.net.pl" wyglądałoby: Czy jest odpowiedź z "net.pl"? Jeśli nie ma to sprawdź czy jest odpowiedź z "domena.net.pl" itd. Przerwij gdy jest odpowiedź i zwróć sprawdzany adres (w tym przypadku "domena.net.pl"). Domyślam się jednak, że takie sprawdzanie (np. gethostbyname) będzie generowało pewne opóźnienie w oczekiwaniu na odpowiedź. Zawsze można to odpalać tylko raz na sesję, ale to chyba takie "zamiatanie pod dywan". Pozdrawiam! -- Nattfarinn |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zainteresował mnie temat i napisałem takiego sprawdzacza:
Kod function sprawdz($url) { $a = curl_init($url); curl_setopt($a, CURLOPT_NOBODY, true); curl_exec($a); $kodbledu = curl_getinfo($a, CURLINFO_HTTP_CODE); curl_close($a); return $kodbledu; } Widze, że działa ale pytanie czy to dobre rozwiązanie aby sprawdzić że adres istnieje? Ten post edytował lubomir1973 16.12.2007, 11:00:38 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast prega możesz po prostu rozbić adres funkcją parse_url (http://pl.php.net/manual/pl/function.parse-url.php), i użyć czegoś takiego:
Powód edycji: Proponuję najpierw przejrzeć poprzednie posty, bo to traktuję jako spam. @drPayton
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 19:59 |