![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 194 Pomógł: 2 Dołączył: 12.04.2004 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
chciałem zapytać bardziej rozeznanych w temacie - mam do parsowania pliki txt po 600/1000 MB. W tym momencie stosuję funkcje file i substr ale przy tak dużych plikach php wymięka, time limit na długie godziny memory limit ile sie da czyli 2 gb. Miał ktoś może z was podobny problem ?
Będę wdzięczny za każdy pomysł. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
chciałem zapytać bardziej rozeznanych w temacie - mam do parsowania pliki txt po 600/1000 MB. W tym momencie stosuję funkcje file i substr ale przy tak dużych plikach php wymięka, time limit na długie godziny memory limit ile sie da czyli 2 gb. Miał ktoś może z was podobny problem ? Będę wdzięczny za każdy pomysł. użyj set_time_limit(); -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Co konkretnie oznacza , że "wymięka"?
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
OMG, przeciez file laduje od razu caly plik do pamieci to nic dziwnego ze sie wlecze.
uzyj fopen() + fread() + innych operujacych na strumieniu, bo czytaja plik po fragmencie i nie trzymaja calej jego zawartosci w pamieci -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 194 Pomógł: 2 Dołączył: 12.04.2004 Skąd: Częstochowa Ostrzeżenie: (10%) ![]() ![]() |
Wymięka to akurat w tym przypadku oznacza powieszenie komputera (localhost). set_time_limit() - już na 2h.
Jasne że pobieranie strumieniowe jest bardziejsze w tym przypadku tylko nie jak je zrealizować. Przykładowe dane wyglądają tak Kod 001369825grecja 0125granada 025***hotel piersonada025 456875 45357 00 21 35 0000 554 001369825grecja 0125granada 025***hotel piersonada025 456875 45357 00 21 35 0000 554 001369825grecja 0125granada 025***hotel piersonada025 456875 45357 00 21 35 0000 554 001369825grecja 0125granada 025***hotel piersonada025 456875 45357 00 21 35 0000 554 001369825grecja 0125granada 025***hotel piersonada025 456875 45357 00 21 35 0000 554 ... i teraz muszę pobrać zawsze pełną paczkę danych czyli kończąca się enterem czyli jeśli wiem że wiersz ma np: 47bajtów to
to mocno uproszczone ale czy to dobre myślenie ? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
pl.php.net/manual/pl/function.fgets.php
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
W ogole wyglada to jak CSV, i masz do tego masz funkcyjke fgetcsv czy jakos tak, i nie file_get_contents!!! RTFM, on przeciez tez wszystko od razu wczytuje do pamieci.
-------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 14:03 |