Skocz do zawartości

Skrypt, funkcja - do sprawdzania "aktywności" linku


adby

Rekomendowane odpowiedzi

Witam,

Czy istnieje jakaś funkcja, bądź zna ktoś gotowy skrypt do sprawdzania, czy dany link rozpoczyna pobieranie jakiegoś pliku?

Tzn. chodzi o to, że jeśli jako argument podam link, to jako wynik dostanę informację czy link jest aktywny (rozpoczyna się pobieranie pliku) bądź nieaktywny (tutaj wszystkie inne przypadki).

Mam nadzieję, że zrozumieliście, o co mi chodzi :D

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

czy dany link rozpoczyna pobieranie jakiegoś pliku?
:D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Najprościej otworzyć taki link za pomocą fopen, które powinno zwrócić false w przypadku błędu 404 lub jakiegokolwiek innego. Jeśli potrzebujesz dokładniejszych informacji o błędzie, lepszy będzie curl.

Program partnerski na Twoje katalogi i precle! Nawet 20% prowizji!
Odnośnik do komentarza
Udostępnij na innych stronach

:D

A co w tym śmiesznego?

adby- spróbuj jakimś curlem po prostu otwierać dany link, ale jako odpowiedź zbierać tylko nagłówki, po czym sprawdź jaki status dostałeś od serwera- jeśli 200 to ok, a jak nie to nie ok. Kodem Ci nie zarzucę, bo moje php kung- fu kończy się na echo "Hello World"; ;)

Odnośnik do komentarza
Udostępnij na innych stronach

To, że link przekazuje oprogramowaniu klienta adres pod jaki ma wysłać żądanie GET pobrania pliku, a to dopiero on pobiera...

W celu uzyskania informacji czy dany zasób jest dostępny i zgodny z oczekiwaniami należało by użyć socket'ow i żądania HEAD protokołu HTTP które zwraca sam nagłówek, a nie pobierze plik jak żądanie GET i curl.

View HTTP Request and Response Header

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za podpowiedzi :)

@wszystko ginie - jednak chyba curl, bo potrzebuję bardziej dokładnych info.

@mrbox - zapomniałem dodać, że te linki nie są linkami bezpośrednimi, więc każdy z nich zwróci 301 Moved Permanently, więc najpierw muszę i tak, zdobyć te linki bezpośrednie.

@Mion - nawet nie wiem co to są te socket'y ;) Narzędzie, do którego podałeś link, jak już wcześniej wspomniałem zwraca 301, więc chyba jako Location: powinienem otrzymać już link bezpośredni do pliku, a jednak dostaję link który podałem jako argument. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie rozumiecie, że cURL sie do tego NIE NADAJE, bo wywolanie curl powoduje pobranie pliku, a nie tylko nagłówków z informacją o nim. Wystarczy, że sprawdzany plik będzie powiedzmy 20MB i co wtedy :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Fakt, Mion ma rację- a ja zapomniałem o tym, że coś takiego jak sockety można wykorzystać :)

@adby- poszukaj czegoś o socketach(gniazdach) w dowolnym języku(ja się ich uczyłem pisząc w Javie)- jak zrozumiesz o co chodzi, to rozwiązanie przyjdzie samo :)

Odnośnik do komentarza
Udostępnij na innych stronach

Za bardzo nie musi szukać) socket oraz Metody HTTP :D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No i rozwiązałem problem.

Funkcją get_headers() pobrałem nagłówki i jeśli Content-Type: zawierało ciąg 'application' oraz status serwera == 200, wtedy link uznawałem jako aktywny, inne przypadki jeszcze podzieliłem, i zostały mi linki nieaktywne i takie do sprawdzenia "ręcznego", ale już nie ma tego wiele :unsure:

Tak tylko piszę, gdyby ktoś miał podobny problem kiedyś :)

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności