iqb/substream

PHP stream wrapper for using only a portion of a stream.

dev-master 2018-04-13 20:36 UTC

This package is not auto-updated.

Last update: 2024-11-17 09:18:28 UTC


README

Build Status Code Coverage Software License

Issues/pull requests

This repository is a subtree split of the iqb/Morgue repository so it can be required as a stand alone package via composer. To open an issues or pull request, please go to the iqb/Morgue repository.

Installation

Via composer:

composer require iqb/substream

Usage

The stream wrapper is registered for the iqb.substream:// protocol. To use as substream, just open a new like that:

use const iqb\stream\SUBSTREAM_SCHEME;

$originalStream = \fopen('filename', 'r');
$offset = 25;
$length = 100;

$substream = \fopen(SUBSTREAM_SCHEME . "://$offset:$length/" . (int)$originalStream);

\fseek($orignalStream, 50);
\fseek($substream, 25);

// Will not fail
assert(\fread($originalStream, 50) === \fread($substream, 50));