quorum / stream-functions
useful php-stream resource handling functions for common lexing and parsing tasks
Installs: 8 762
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^7.2|^8.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ~5|~9
This package is auto-updated.
Last update: 2024-12-01 06:51:28 UTC
README
Useful functions for manipulating PHP streams (resources).
The general structure of these are inspired by a talk given by Rob Pike.
Requirements
- php: ^7.2|^8.0
Installing
Install the latest version with:
composer require 'quorum/stream-functions'
Stream Functions
Function: \Quorum\Streams\faccept
function faccept($stream, string ...$accept) : ?string
Parameters:
- resource
$stream
- The stream to peek, must be a seekable resource - string
$accept
- One or more strings to accept
Returns:
- string | null - The accepted string or null if none were found
faccept peeks the given stream for the given string returning it if it is
found * or null if it is not.
If the string is found, the cursor remains advanced to the end of the string.
If the string is not found, the cursor is reset to its original position.
Function: \Quorum\Streams\fpeek
function fpeek($stream [, int $length = 1]) : string
Parameters:
- resource
$stream
- The stream to peek, must be a seekable resource - int
$length
- Up to length number of bytes read.
Returns:
- string - The peeked string of up to length bytes
fpeek peeks the given stream for the given length returning as found.
The cursor is reset to its original position.
Function: \Quorum\Streams\funtil
function funtil($stream, string $until [, int $length = 0 [, ?string $buf = null]]) : bool
Parameters:
- resource
$stream
- The stream to read, must be a seekable resource - string
$until
- The string to read until - int
$length
- The maximum number of bytes to read, defaults to 0 (no limit) - string | null
$buf
- The buffered contents by reference
Returns:
- bool
funtil reads the given stream until the given string is found or eof is reached