public function LocalReadOnlyStream::stream_open

public LocalReadOnlyStream::stream_open($uri, $mode, $options, &$opened_path)

Support for fopen(), file_get_contents(), etc.

Any write modes will be rejected, as this is a read-only stream wrapper.

Parameters

string $uri: A string containing the URI to the file to open.

int $mode: The file mode, only strict readonly modes are supported.

int $options: A bit mask of STREAM_USE_PATH and STREAM_REPORT_ERRORS.

string $opened_path: A string containing the path actually opened.

Return value

bool TRUE if $mode denotes a readonly mode and the file was opened successfully, FALSE otherwise.

Overrides LocalStream::stream_open

See also

http://php.net/manual/streamwrapper.stream-open.php

File

core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php, line 45

Class

LocalReadOnlyStream
Defines a read-only Drupal stream wrapper base class for local files.

Namespace

Drupal\Core\StreamWrapper

Code

public function stream_open($uri, $mode, $options, &$opened_path) {
  if (!in_array($mode, array('r', 'rb', 'rt'))) {
    if ($options & STREAM_REPORT_ERRORS) {
      trigger_error('stream_open() write modes not supported for read-only stream wrappers', E_USER_WARNING);
    }
    return FALSE;
  }

  $this->uri = $uri;
  $path = $this->getLocalPath();
  $this->handle = ($options & STREAM_REPORT_ERRORS) ? fopen($path, $mode) : @fopen($path, $mode);
  if ($this->handle !== FALSE && ($options & STREAM_USE_PATH)) {
    $opened_path = $path;
  }

  return (bool) $this->handle;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!StreamWrapper!LocalReadOnlyStream.php/function/LocalReadOnlyStream::stream_open/8.1.x