Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie pliku z serwera
Forum PHP.pl > Forum > PHP
Babcia@Stefa
Witam, mam kod który pobiera mi plik z internetu nie obciążając serwera apache.

  1. <?php
  2. $fp = fopen($File, 'r');
  3.  
  4.    while (!feof($fp))
  5.    {
  6.        $I++;
  7.        if($I == 20)
  8.        {
  9.            $I=0;
  10.            sleep(1);
  11.        }
  12.        $Data = fgets($fp, '2048');
  13.        file_put_contents('newfile.zip', $Data, FILE_APPEND);
  14.    }
  15.    
  16.    fclose($fp);
  17. ?>


Niestety prędkość pobierania jest wolna, ale to narazie nie ważne (poprawie to wkrótce), ale MOIM PROBLEMEM jest to że ten kod pobiera niekompletny plik tzn.

Cytat
Pobrano 100% (383757 z 383721 bajtow)


Pobiera o troszkę za dużo.

Gdzie jest błąd w kodzie?

@edit

Cytat
Pobrano {PROCENT} ({FILESIZE} - {SESSION - wielkość pliku pobrana z serwera (serwer podaje informację w formacie XML) - filesize po stronie serwera} bajtow)


Pozdrawiam, WebNuLL
Darti
Serwer obciążasz tak samo (kto wie czy nie bardziej) tyle że rozkładasz to w czasie.

Co do kodu - pokaż w jaki sposób zliczasz te wartości (383757 z 383721 bajtow) ...
A jeszcze prościej - stwórz sobie plik 1 bajtowy (np z literką a w środku) i pobierz go Twoją metodą a nastepnie otwórz pobrany plik - zobaczysz sam czego jest za duzo (o ile w ogołe jest za dużo).
Babcia@Stefa
Z tym 1 bajtowym plikiem to spróbuję.
Co do obciążenia serwera to wiem, rozkładam je aby od razu cały serwer nie używał 50% procesora (jak ja testowałem ten kod to używał 0-1%).

@edit
Gdy nie będę używał sleep()" title="Zobacz w manualu PHP" target="_manual to serwer mi się zamrozi na chwilę...

Pozdrawiam, WebNuLL
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.