Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] explode
Forum PHP.pl > Forum > Przedszkole
grzegorzko90
Witam. Mam pytanie... jak mam zastosować funkcję explode() jeśli dane, które chcę rozbić na tablice znajdują się w pliku ?
Myślałem ,żeby odczytać dane z pliku i podstawić do zmiennej ale ten plik zawiera "ogromną" ilość linijek. Podrzuci ktoś jakieś rozwiązanie ?
Pozdrawiam.
Grzegorz.
Spawnm
może file" title="Zobacz w manualu PHP" target="_manual od razu plik masz w tablicy
sowiq
Cytat(grzegorzko90 @ 30.04.2009, 13:07:41 ) *
ale ten plik zawiera "ogromną" ilość linijek.
Ogromną, to znaczy jaką?
Jeśli plik jest bardzo duży, zamiast file()" title="Zobacz w manualu PHP" target="_manual używaj fgets()" title="Zobacz w manualu PHP" target="_manual. Dzięki tej funkcji nie pobierasz do pamięci całego pliku, a tylko kolejne jego linie.
slawny
  1. <?php
  2. $lista = file('plik.txt');
  3.  
  4. foreach ($lista as $linia)
  5. {
  6.  $tuser = explode(';',$linia);
  7.  //inny kod
  8. }
  9. ?>
sowiq
@slawny,
a co jeśli plik waży 100MB i jednocześnie otworzy go w ten sposób 500 userów? Autor napisał, że plik jest dosyć spory.
slawny
Tak, masz racje napisał że jest dość spory. Ale nie raczył odpisać tobie, jak bardzo....
Jak napisze, że plik ma 100MB to się do tego odniosę, a póki co nie szukaj dziury w całym.
grzegorzko90
macie rację, przepraszam nie napisałem wielkości. Plik waży ~ 45 mb. Wydaje mi się ,że to dosyć duża waga. Jak już ktoś pisał jeżeli otworzy go kilka osób serwer może być za bardzo obciążony.
slawny
No to tak jak @sowiq pisał użyj fgets.

Ale czy faktycznie będą sytuacje kiedy na tym pliku będzie pracowało kilku userów?
grzegorzko90
Hmmm obecnie jest to mało prawdopodobne no ale w przyszłości (wraz z rozwojem projektu) będą takie sytuacje.
Crozin
Czy to koniecznie musi być jeden plik tekstowy? Czy nie lepiej byłoby użyć bazy danych, albo chociaż podzielić go na kilka części. Oczywiście o ile istnieje taka możliwość.
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.