@ 2016-07-08T01:19:02Z <?php
class File_stream {
static $stream;
protected $position;
function stream_open ($path, $mode) {
if ($mode != 'r' && $mode != 'rb') {
return false;
}
$this->position = 0;
return true;
}
function stream_read ($length) {
fseek(self::$stream, $this->position);
$bytes = fread(self::$stream, $length);
$this->position += strlen($bytes);
return $bytes;
}
function stream_tell () {
return $this->position;
}
function stream_eof () {
fseek(self::$stream, $this->position);
return feof(self::$stream);
}
function stream_seek ($offset, $whence = SEEK_SET) {
var_dump('seek', $this->position, $offset, $whence);
fseek(self::$stream, $this->position);
$result = fseek(self::$stream, $offset, $whence);
$this->position = ftell(self::$stream);
return $result;
}
function stream_stat () {
return fstat(self::$stream);
}
}
stream_wrapper_register('request-file', 'File_stream');
$data = '0123456789abcdef';
$stream_direct = fopen('php://temp', 'w+b');
fwrite($stream_direct, $data);
rewind($stream_direct);
File_stream::$stream = $stream_direct;
$stream = fopen('request-file://', 'r');
var_dump(fread($stream, 3));
var_dump(ftell($stream));
var_dump(fseek($stream, -1, SEEK_CUR));
var_dump(fread($stream, 2));
var_dump(ftell($stream));
fclose($stream);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.2.0 - 8.2.19 , 8.3.0 - 8.3.7 Deprecated: Creation of dynamic property File_stream::$context is deprecated in /in/3RG7r on line 46
string(3) "012"
int(3)
string(4) "seek"
int(16)
int(2)
int(0)
int(-1)
string(2) "23"
int(5)
Output for 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.34 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 string(3) "012"
int(3)
string(4) "seek"
int(16)
int(2)
int(0)
int(-1)
string(2) "23"
int(5)
preferences:dark mode live preview
233.7 ms | 404 KiB | 341 Q