Streams
Introduction
Streams are the way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary location within the stream.
A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Supported Protocols and Wrappers), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().
A stream is referenced as: scheme://target
scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Supported Protocols and Wrappers for a list of PHP built-in wrappers. If no wrapper is specified, the function default is used (typicallyfile://).target- Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Supported Protocols and Wrappers for a description of targets for built-in streams.
- Installing/Configuring
- Predefined Constants
- Stream Filters
- Stream Contexts
- Stream Errors
- Examples
- php_user_filter — The php_user_filter class
- php_user_filter::filter — Called when applying the filter
- php_user_filter::onClose — Called when closing the filter
- php_user_filter::onCreate — Called when creating the filter
- streamWrapper — The streamWrapper class
- streamWrapper::__construct — Constructs a new stream wrapper
- streamWrapper::__destruct — Destructs an existing stream wrapper
- streamWrapper::dir_closedir — Close directory handle
- streamWrapper::dir_opendir — Open directory handle
- streamWrapper::dir_readdir — Read entry from directory handle
- streamWrapper::dir_rewinddir — Rewind directory handle
- streamWrapper::mkdir — Create a directory
- streamWrapper::rename — Renames a file or directory
- streamWrapper::rmdir — Removes a directory
- streamWrapper::stream_cast — Retrieve the underlying resource
- streamWrapper::stream_close — Close a resource
- streamWrapper::stream_eof — Tests for end-of-file on a file pointer
- streamWrapper::stream_flush — Flushes the output
- streamWrapper::stream_lock — Advisory file locking
- streamWrapper::stream_metadata — Change stream metadata
- streamWrapper::stream_open — Opens file or URL
- streamWrapper::stream_read — Read from stream
- streamWrapper::stream_seek — Seeks to specific location in a stream
- streamWrapper::stream_set_option — Change stream options
- streamWrapper::stream_stat — Retrieve information about a file resource
- streamWrapper::stream_tell — Retrieve the current position of a stream
- streamWrapper::stream_truncate — Truncate stream
- streamWrapper::stream_write — Write to stream
- streamWrapper::unlink — Delete a file
- streamWrapper::url_stat — Retrieve information about a file
- Stream Functions
- stream_bucket_append — Append bucket to brigade
- stream_bucket_make_writeable — Returns a bucket object from the brigade to operate on
- stream_bucket_new — Create a new bucket for use on the current stream
- stream_bucket_prepend — Prepend bucket to brigade
- stream_context_create — Creates a stream context
- stream_context_get_default — Retrieve the default stream context
- stream_context_get_options — Retrieve options for a stream/wrapper/context
- stream_context_get_params — Retrieves parameters from a context
- stream_context_set_default — Set the default stream context
- stream_context_set_option — Sets an option for a stream/wrapper/context
- stream_context_set_options — Sets options on the specified context
- stream_context_set_params — Set parameters for a stream/wrapper/context
- stream_copy_to_stream — Copies data from one stream to another
- stream_filter_append — Attach a filter to a stream
- stream_filter_prepend — Attach a filter to a stream
- stream_filter_register — Register a user defined stream filter
- stream_filter_remove — Remove a filter from a stream
- stream_get_contents — Reads remainder of a stream into a string
- stream_get_filters — Retrieve list of registered filters
- stream_get_line — Gets line from stream resource up to a given delimiter
- stream_get_meta_data — Retrieves header/meta data from streams/file pointers
- stream_get_transports — Retrieve list of registered socket transports
- stream_get_wrappers — Retrieve list of registered streams
- stream_is_local — Checks if a stream is a local stream
- stream_isatty — Check if a stream is a TTY
- stream_notification_callback — A callback function for the notification context parameter
- stream_register_wrapper — Alias of stream_wrapper_register
- stream_resolve_include_path — Resolve filename against the include path
- stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by seconds and microseconds
- stream_set_blocking — Set blocking/non-blocking mode on a stream
- stream_set_chunk_size — Set the stream chunk size
- stream_set_read_buffer — Set read file buffering on the given stream
- stream_set_timeout — Set timeout period on a stream
- stream_set_write_buffer — Sets write file buffering on the given stream
- stream_socket_accept — Accept a connection on a socket created by stream_socket_server
- stream_socket_client — Open Internet or Unix domain socket connection
- stream_socket_enable_crypto — Turns encryption on/off on an already connected socket
- stream_socket_get_name — Retrieve the name of the local or remote sockets
- stream_socket_pair — Creates a pair of connected, indistinguishable socket streams
- stream_socket_recvfrom — Receives data from a socket, connected or not
- stream_socket_sendto — Sends a message to a socket, whether it is connected or not
- stream_socket_server — Create an Internet or Unix domain server socket
- stream_socket_shutdown — Shutdown a full-duplex connection
- stream_supports_lock — Tells whether the stream supports locking
- stream_wrapper_register — Register a URL wrapper implemented as a PHP class
- stream_wrapper_restore — Restores a previously unregistered built-in wrapper
- stream_wrapper_unregister — Unregister a URL wrapper