You are here

public function LocalStream::stream_open in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/StreamWrapper/LocalStream.php \Drupal\Core\StreamWrapper\LocalStream::stream_open()

Opens file or URL.

This method is called immediately after the wrapper is initialized (e.g. by fopen() and file_get_contents()).

Note the streamWrapper::$context property is updated if a valid context is passed to the caller function.

Parameters

string $path: Specifies the URL that was passed to the original function. Note that the URL can be broken apart with parse_url(). Note that only URLs delimited by "://" are supported. ":" and ":/" while technically valid URLs, are not.

string $mode: The mode used to open the file, as detailed for fopen(). Note, remember to check if the mode is valid for the path requested.

int $options: Holds additional flags set by the streams API. It can hold one or more of the following values ORed together:

  • STREAM_USE_PATH: If path is relative, search for the resource using the include_path.
  • STREAM_REPORT_ERRORS: If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

string $opened_path: If the path is opened successfully, and STREAM_USE_PATH is set in options, opened_path should be set to the full path of the file/resource that was actually opened.

Return value

bool Returns TRUE on success or FALSE on failure.

Overrides PhpStreamWrapperInterface::stream_open

See also

fopen()

parse_url()

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

1 call to LocalStream::stream_open()
LocalReadOnlyStream::stream_open in core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php
Opens file or URL.
1 method overrides LocalStream::stream_open()
LocalReadOnlyStream::stream_open in core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php
Opens file or URL.

File

core/lib/Drupal/Core/StreamWrapper/LocalStream.php, line 149

Class

LocalStream
Defines a Drupal stream wrapper base class for local files.

Namespace

Drupal\Core\StreamWrapper

Code

public function stream_open($uri, $mode, $options, &$opened_path) {
  $this->uri = $uri;
  $path = $this
    ->getLocalPath();
  if ($path === FALSE) {
    if ($options & STREAM_REPORT_ERRORS) {
      trigger_error('stream_open() filename cannot be empty', E_USER_WARNING);
    }
    return FALSE;
  }
  $this->handle = $options & STREAM_REPORT_ERRORS ? fopen($path, $mode) : @fopen($path, $mode);
  if ((bool) $this->handle && $options & STREAM_USE_PATH) {
    $opened_path = $path;
  }
  return (bool) $this->handle;
}