![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 1.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam skrypt, którego zadaniem jest pobieranie danych z pliku, następnie odpowiednie ich przerabianie.
Niestety, plik ma ponad 50mb samych informacji tekstowych, przez co skrypt się po prostu wywala. W pliku php.ini zmieniłem maksymalny czas wykonywania skryptu, jednak to nie zupełnie to, o co mi chodziło. Chciałbym wykorzystać rozwiązanie, które pozwoliłoby podzielić wykonanie całości na części. Coś takiego, co pozwoliłoby na wykonanie części skryptu, następnie automatyczne przeładowanie całości i zaczęcie od miejsca, gdzie skrypt ostatnio skończył. Plus możliwość samodzielnego wznowienia skryptu w danym momencie. Nie wiem jak to ugryźć, a także nie wiem w jaki sposób wyszukać tutaj na forum, czy w google. Pomoże ktoś? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1) Jak pobieraz dane z tego pliku? File_get_contents?
Jeżeli tak to zamień na fopen i fread. Czytaj fragmentami i na tych fragmentach operuj 2) Zrób wykrywanie kończącego się czasu czyli. Pobierasz początkowy czas wykonywania skryptu i przy przeanalizowaniu kolejnych fragmentów pliku sprawdź czy aktualna roznica czasu (aktualny_czas - czas_poczatkowy) jest mniejszy od limitu czasy wykonywania. Jeżeli tak zapisujesz stan operacji i konczysz działanie. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 1.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dane z pliku pobieram poprzez fopen i fread.
Jednak po wykonaniu całości, dane powinny być zapisane w innym pliku, gdzie używam file_put_contents. Zamienić to też? Czyli rozumiem, że gdy skrypt rusza, to mam pobrać czas, następnie po wykonaniu raz pętli sprawdzić, jak wygląda różnica czasu i tak w kółko, aż uzyskam czas zbliżony do limitu, wtedy zapisuje wynik działania, a następnie przeładowuję skrypt i idę dalej? A czy można by prosić o odnośnik do takiego kodu? Nie musi być oczywiście dokładnie taki, po prostu chciałbym zobaczyć, jak to wygląda na przykładzie. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Cytat Jednak po wykonaniu całości, dane powinny być zapisane w innym pliku, gdzie używam file_put_contents. Zamienić to też? Przyznam, że nie wiem. Wydaje mi się że nie ma różnicy ale możesz sprawdzić testowo ![]()
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 01:08 |