Useful functions for manipulating PHP streams (resources).
The general structure of these are inspired by a talk given by Rob Pike.
- php: ^7.2|^8.0
Install the latest version with:
composer require 'quorum/stream-functions'
function faccept($stream, string ...$accept) : ?string
- resource
$stream
- The stream to peek, must be a seekable resource - string
$accept
- One or more strings to accept
- 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 fpeek($stream [, int $length = 1]) : string
- resource
$stream
- The stream to peek, must be a seekable resource - int
$length
- Up to length number of bytes read.
- 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 funtil($stream, string $until [, int $length = 0 [, ?string $buf = null]]) : bool
- 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
- bool
funtil reads the given stream until the given string is found or eof is reached