Skip to content

mobileka/liner

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Build Status Code Climate Coverage Status

Liner is a fast and dead simple file reader which allows reading files line by line.

It has been tested with a number of huge files including those with more than 5 million rows and proved itself as a fast and efficient file reader.

Requires PHP 5.4 or newer.

Installation

composer require mobileka/liner:1.1.*

And sometimes I find myself looking for this line in installation section:

"mobileka/liner": "1.1.*"

Usage

$liner = new Liner('path/to/a/file'); // or SplFileObject instance

// Read the whole file
$liner->read();

// Only the first line
$liner->read(1);

// Only the second line
$liner->read(1, 1);

// Read 100 lines starting with the 6th line
$liner->read(100, 5);

// You can also pass a closure as a third argument to mutate the result without iterating over it
// Here's how you can read a CSV file:
$csvAsArray = $liner->read(0, 0, function($file, $line) {
    $line = trim($line);
    return explode(',', $line);
});

// A line will be ignored if modifier returns null
$anEmptyArray = $liner->read(0, 0, function($file, $line) {
    return null;
});

// almost forgot to mention that you can get the number of lines
$liner->getNumberOfLines();

// and that you can also delegate methods to SplFileObject (is it a good idea though?)
$liner->eof();
$liner->rewind();

License

Liner is an open-source software and licensed under the MIT License.

About

Liner is a fast and simple file reader that allows reading files line by line

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages