2017 © Pedro Peláez
 

library line-reader

Read large files line by line in a memory efficient (constant) way.

image

bcremer/line-reader

Read large files line by line in a memory efficient (constant) way.

  • Tuesday, July 3, 2018
  • by bcremer
  • Repository
  • 2 Watchers
  • 4 Stars
  • 108,927 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 23 % Grown

The README.md

LineReader

Latest Version on Packagist ![Software License][ico-license] [Build Status][link-ghactions], (*1)

LineReader is a library to read large files line by line in a memory efficient (constant) way., (*2)

Install

Via Composer, (*3)

$ composer require bcremer/line-reader

Usage

Given we have a textfile (some/file.txt) with lines like:, (*4)

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10

Also let's assume the namespace is imported to keep the examples dense:, (*5)

use Bcremer\LineReader\LineReader;

Read forwards

foreach (LineReader::readLines('some/file.txt') as $line) {
    echo $line . "\n"
}

The output will be:, (*6)

Line 1
Line 2
Line 3
Line 4
Line 5
...

To set an offset or a limit use the \LimitIterator:, (*7)

$lineGenerator = LineReader::readLines('some/file.txt');
$lineGenerator = new \LimitIterator($lineGenerator, 2, 5);
foreach ($lineGenerator as $line) {
    echo $line . "\n"
}

Will output line 3 to 7, (*8)

Line 3
Line 4
Line 5
Line 6
Line 7

Read backwards

foreach (LineReader::readLinesBackwards('some/file.txt') as $line) {
    echo $line;
}
Line 10
Line 9
Line 8
Line 7
Line 6
...

Example: Read the last 5 lines in forward order:, (*9)

$lineGenerator = LineReader::readLinesBackwards('some/file.txt');
$lineGenerator = new \LimitIterator($lineGenerator, 0, 5);

$lines = array_reverse(iterator_to_array($lineGenerator));
foreach ($line as $line) {
    echo $line;
}
Line 6
Line 7
Line 8
Line 9
Line 10

Testing

$ composer test
$ TEST_MAX_LINES=200000 composer test

License

The MIT License (MIT). Please see License File for more information., (*10)

The Versions

03/07 2018

dev-master

9999999-dev

Read large files line by line in a memory efficient (constant) way.

  Sources   Download

MIT

The Requires

  • php ~7.1|~7.2

 

The Development Requires

by Benjamin Cremer

21/11 2017

1.0.0

1.0.0.0

Read large files line by line in a memory efficient (constant) way.

  Sources   Download

MIT

The Requires

  • php ~7.1|~7.2

 

The Development Requires

by Benjamin Cremer

12/12 2016

0.2.0

0.2.0.0

Read large files line by line in a memory efficient (constant) way.

  Sources   Download

MIT

The Requires

  • php ~5.6|~7.0|~7.1

 

The Development Requires

by Benjamin Cremer

05/08 2016

dev-lazy-exceptions

dev-lazy-exceptions

  Sources   Download

MIT

The Requires

  • php ~5.6|~7.0

 

The Development Requires

by Benjamin Cremer

05/08 2016

0.1.0

0.1.0.0

  Sources   Download

MIT

The Requires

  • php ~5.6|~7.0

 

The Development Requires

by Benjamin Cremer