Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] odczytanie części pliku
Forum PHP.pl > Forum > Przedszkole
Demoneos
W jaki najoptymalniejszy sposób można by było odczytać część pliku tekstowego? Załóżmy, że plik ma 5000 linijek. Ja chcę odczytać linijki od 1000 do 1200.
Mógłbym np. przesunąć wskaźnik na 1000 linię, a następnie odczytać w pętli (w każdej iteracji jedną linię) te 200 lini. Może są jakieś lepsze rozwiązania?
ViX
Nie baw sie w pliki tylko zrob to na bazie danych
Szybciej, wygodniej i bez wiekszych problemow
elemek
Cytat(Demoneos @ 21.08.2008, 12:48:08 ) *
W jaki najoptymalniejszy sposób można by było odczytać część pliku tekstowego? Załóżmy, że plik ma 5000 linijek. Ja chcę odczytać linijki od 1000 do 1200.
Mógłbym np. przesunąć wskaźnik na 1000 linię, a następnie odczytać w pętli (w każdej iteracji jedną linię) te 200 lini. Może są jakieś lepsze rozwiązania?


Jeżeli chodzi o tak małe pliki jak 5000 (powiedzmy do 1MB) linijek tekstu najprościej i wbrew pozorom najefektywniej będzie wczytać całość (z tego względu że odczyty z dysku i tak są buforowane wiec faktycznie mały plik i tak zostanie wczytany w całości do bufora systemu)

  1. <?php
  2. /**
  3.  * Funkcja zwraca wskazane linie tekstu
  4.  *
  5.  * @param string $file_name nazwa pliku
  6.  * @param int $lines_from numer pierwszej lini do wczytania (numerowane od 1)
  7.  * @param int $lines_to numer ostatniej lini
  8.  * @return array tablica indeksowana oryginalnymi numerami lini.
  9.  */
  10. function getLines($file_name, $lines_from, $lines_to) {
  11. '/^.*$/m',
  12. file_get_contents($file_name),
  13. $lines,
  14. PREG_SET_ORDER
  15. );
  16. for ($i = $lines_from-1; $i < $lines_to; $i++) {
  17. $result[$i+1] = $lines[$i][0];
  18. }
  19. return $result;
  20. }
  21. ?>
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.