Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie _fragmentu_ strony
Forum PHP.pl > Forum > PHP
Zajec
Jest sobie pewien plik w internecie, którego zawartość chciałbym pobrać. Dajmy na to ogromny changelog kernela.

Pobierając plik standardowymi metodami: file, fsockopen, curl - pobieram całą zawartość pliku. A mi zależy tylko na jego nagłówku, pierwszych 10 linijkach. Szkoda mi czasu i transferu na pobieranie 3MB zbędnego tekstu.

Czy można to jakoś obsłużyć? Pobranie 10 linijek a potem przerwanie połączenia?

P.S.
Chodzi mi również o funkcję która będzie działać szybko, bo mam kilkanaście dużych plików do pobrania w krótkim czasie. Z tego co wiem funkcje file czy filegetcontents nie są przystosowane wydajnościowo do obsługi http.
mike
Otwierasz normalnie fopen() lecisz pętlą while (+ feof()) i czytasz po ileś bajtów fgets().
Jak natrafisz na dziesiąty z kolei znak końca linii robisz break; i olewasz dalszy plik.

P.S.
Ponieważ file_get_contents() i file() wczytują cały plik od razu.
fopen() działa na strumieniach.
superfrajer
i fclose() na koniec jako amen
Sokal
[OT]Ten komentarz jest chyba zbędny, ale...

@up
Po poście mike w temacie o frameworkach będziesz teraz udowadniał, że nie jesteś taki frajer (sry)? I będziesz gdziekolwiek pisał posty aby pisać? Ten Twój post tutaj jest zbędny, sądzę, że Zajec zna te funkcje ... Tylko się pytał o koncepcję.

@down
przeczytaj pierwszą linijkę tego co napisałem winksmiley.jpg[/OT]
webdice
Ja bym wykorzystał do tego drugi parametr funkcji fread" title="Zobacz w manualu PHP" target="_manual, oczywiście nie zawsze będziesz wiedział ile znaków ma nagłówek, ale pobierasz sobie więcej danych, a później to ładnie obrabiasz.

~Sokal Twój post też był nie potrzebny smile.gif. Takie teksty zostaw moderatorom smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.