![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
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. Ten post edytował Zajec 12.06.2007, 13:12:01 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
i fclose() na koniec jako amen
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 8.02.2007 Ostrzeżenie: (10%) ![]() ![]() |
[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 ![]() Ten post edytował Sokal 12.06.2007, 18:04:00 -------------------- Jabber/E-Mail: dominiksokal[at]gmail.com | GG: #3795571
|
|
|
![]()
Post
#5
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
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 ![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 14:25 |