| Server IP : 213.186.33.4 / Your IP : 216.73.216.146 Web Server : Apache System : Linux webm005.cluster103.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64 User : karinebmkh ( 644538) PHP Version : 8.4.22 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/karinebmkh/www2/wp-content/plugins/amp/third_party/fasterimage/Stream/ |
Upload File : |
<?php namespace WillWashburn\Stream;
use WillWashburn\Stream\Exception\StreamBufferTooSmallException;
/**
* Class Stream
*
* @package FasterImage
*/
class Stream implements StreamableInterface
{
/**
* The string that we have downloaded so far
*/
protected $stream_string = '';
/**
* The pointer in the string
*
* @var int
*/
protected $strpos = 0;
/**
* Get characters from the string but don't move the pointer
*
* @param $characters
*
* @return string
* @throws StreamBufferTooSmallException
*/
public function peek($characters)
{
if ( strlen($this->stream_string) < $this->strpos + $characters ) {
throw new StreamBufferTooSmallException('Not enough of the stream available.');
}
return substr($this->stream_string, $this->strpos, $characters);
}
/**
* Get Characters from the string
*
* @param $characters
*
* @return string
* @throws StreamBufferTooSmallException
*/
public function read($characters)
{
$result = $this->peek($characters);
$this->strpos += $characters;
return $result;
}
/**
* Resets the pointer to the 0 position
*
* @return mixed
*/
public function resetPointer()
{
$this->strpos = 0;
}
/**
* Append to the stream string
*
* @param $string
*/
public function write($string)
{
$this->stream_string .= $string;
}
}