78 if (
$options & STREAM_REPORT_ERRORS) {
79 trigger_error(
'Only reading is supported', E_USER_WARNING);
85 parse_str(substr(
$path, 25), $this->params);
86 if (!isset($this->params[
'oleInstanceId'],
87 $this->params[
'blockId'],
88 $GLOBALS[
'_OLE_INSTANCES'][$this->params[
'oleInstanceId']])) {
90 if (
$options & STREAM_REPORT_ERRORS) {
91 trigger_error(
'OLE stream not found', E_USER_WARNING);
95 $this->ole =
$GLOBALS[
'_OLE_INSTANCES'][$this->params[
'oleInstanceId']];
97 $blockId = $this->params[
'blockId'];
99 if (isset($this->params[
'size']) &&
100 $this->params[
'size'] < $this->ole->bigBlockThreshold &&
101 $blockId != $this->ole->root->_StartBlock) {
104 $rootPos = $this->ole->_getBlockOffset($this->ole->root->_StartBlock);
105 while ($blockId != -2) {
106 $pos = $rootPos + $blockId * $this->ole->bigBlockSize;
107 $blockId = $this->ole->sbat[$blockId];
108 fseek($this->ole->_file_handle,
$pos);
109 $this->
data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize);
113 while ($blockId != -2) {
114 $pos = $this->ole->_getBlockOffset($blockId);
115 fseek($this->ole->_file_handle,
$pos);
116 $this->
data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize);
117 $blockId = $this->ole->bbat[$blockId];
120 if (isset($this->params[
'size'])) {
121 $this->
data = substr($this->
data, 0, $this->params[
'size']);
152 $s = substr($this->
data, $this->pos, $count);
153 $this->pos += $count;
164 return $this->pos >= strlen($this->
data);
187 if ($whence == SEEK_SET && $offset >= 0) {
188 $this->pos = $offset;
189 } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) {
190 $this->pos += $offset;
191 } elseif ($whence == SEEK_END && -$offset <=
sizeof($this->
data)) {
192 $this->pos = strlen($this->
data) + $offset;
207 'size' => strlen($this->
data),
stream_stat()
Implements support for fstat().
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
stream_read($count)
Implements support for fread(), fgets() etc.
if(!is_array($argv)) $options
stream_eof()
Implements support for feof().
stream_close()
Implements support for fclose().
stream_open($path, $mode, $options, &$openedPath)
Implements support for fopen().
stream_tell()
Returns the position of the file pointer, i.e.
Create styles array
The data for the language used.
stream_seek($offset, $whence)
Implements support for fseek().