A simple extension of the PHP class SplFileObject
This class is a very simple extension of the base PHP SplFileObject. As such, it has all the same functionality as the base class with a few minor additions.
I have implemented the Countable interface into this class. It utilizes my FileHelper helper class to determine the count
To use, simply execute:
$fileObject = new DCarbone\FileObjectPlus('myfile.txt');
$count = count($fileObject);
echo $count;
To count lines that contain a term, execute:
$fileObject = new DCarbone\FileObjectPlus('myfile.txt');
$count = $fileObject->countLinesContaining('my term');
echo $count;
This class also implements some very simple pagination methods, modeled closely to how you would specify returning a portion of a database table.
To get a portion of a file irrespective of line content:
$fileObject = new DCarbone\FileObjectPlus('myfile.txt');
$offset = 0;
$limit = 25;
$lines = $fileObject->paginateLines($offset, $limit);
var_dump($lines);
By default, blank lines are also returned. You may alternatively ignore these by passing in 4 parameters:
$fileObject = new \DCarbone\FileObjectPlus('myfile.txt');
$offset = 0;
$limit = 25;
$search = null;
$includeEmpty = false;
$lines = $fileObject->paginateLines($offset, $limit, $search, $includeEmpty);
var_dump($lines);
If you wish to paginate through a file only matching lines that contain a certain term:
$fileObject = new \DCarbone\FileObjectPlus('myfile.txt');
$offset = 0;
$limit = 25;
$search = 'my term';
$lines = $fileObject->paginateLines($offset, $limit, $search);
Note: When searching, the fourth parameter is ignored
Note: Both pagination functions currently reset the underlying SplFileObject's internal line pointer.