Skocz do zawartości

file_get_contents() nie działa na niektórych stronach


skorpionek

Rekomendowane odpowiedzi

Witam.

Tworzę niewielki skrypt do wyciągania linków ze stron (wewnętrznych, zewnętrznych, w zależności jakie są potrzebne) i testy wychodziły bardzo dobrze dopóki nie trafiło na stronę niebezpiecznik.pl (naturalny link hehe), z której skrypt nie wyciągnął żadnego adresu mimo, że w kodzie strony jest ich multum. Po sprawdzeniu czy kod strony się pobrał:

$kod = @file_get_contents($url);
echo($kod);

zamiast kopii strony niebezpiecznik.pl wyświetlił mi się spis katalogów na moim hostingu...

Nie mam pojęcia czym to jest spowodowane. Domyślam się, że pewnie w jakiś sposób konfiguracja serwera na, którym stoi strona blokuje funkcję file_get_contents ale nie mam pojęcia w jaki sposób i co zrobić aby jednak pobrać kod tej strony (znaczy się nie chodzi mi konkretnie o kod strony niebezpiecznika tylko ogólnie o strony, w których nie można użyć file_get_contents, niebezpiecznik służy tylko jako przykład bo u nich po raz pierwszy trafiłem na ten problem).

Pozdrawiam i z góry dziękuję za odpowiedź

Odnośnik do komentarza
Udostępnij na innych stronach

zainteresuj się cURL a najlepiej od razu Multi cURL :)

Ok dziękuję bardzo, zaraz zabieram się za szukanie materiałów :)

A mógłbym jeszcze prosić o odpowiedź na drugie pytanie (już bardziej z ciekawości) czyli w jaki sposób jest zablokowana funkcja file_get_contents na tej stronie?

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

A mógłbym jeszcze prosić o odpowiedź na drugie pytanie (już bardziej z ciekawości) czyli w jaki sposób jest zablokowana funkcja file_get_contents na tej stronie?

Od tego trzeba zacząć, że żadna strona www lub inna usługa nie może zablokować funkcji oprogramowania klienta w tym wypadku przedmiotowej file_get_contents.

Funkcja file_get_contents wykonuje żądanie HTTP, a każde żądanie HTTP zawiera odpowiednie nagłówki http, więc co najwyżej serwer przetwarzając żądanie klienta może przeanalizować skład / poprawność nagłówków i jeśli "uzna", że są poprawne zwrócić przewidziany dla żądanie dokument lub odmówić dostępu. Mogą tam być też inne blokady, ale to już przekracza zakres tego postu.

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

Od tego trzeba zacząć, że żadna strona www lub inna usługa nie może zablokować funkcji oprogramowania klienta w tym wypadku przedmiotowej file_get_contents

Wiem, to był tylko skrót myślowy, w pierwszym poście już pisałem ,że jest pewnie serwer, na którym stoi strona to blokuje :)

Dziękuję za odpowiedzi

PS. Jakby ktoś przez przypadek znalazł artykuł, o którym pisał japek to byłbym wdzięczny za wklejenie linka lub wysłanie na pw bo szukam ale coś nie mogę znaleźć.

Pozdrawiam

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