The PHP Streams API introduces a unified approach to
the handling of files and sockets in PHP extension. Using a
single API with standard functions for common operations,
the streams API allows your extension to access files,
sockets, URLs, memory and script-defined objects. Streams
is a run-time extensible API that allows dynamically loaded
modules (and scripts!) to register new streams.
The aim of the Streams API is to make it comfortable
for developers to open files, urls and other streamable
data sources with a unified API that is easy to understand.
The API is more or less based on the ANSI C stdio family of
functions (with identical semantics for most of the main
functions), so C programmers will have a feeling of
familiarity with streams.
The streams API operates on a couple of different
levels: at the base level, the API defines php_stream
objects to represent streamable data sources. On a slightly
higher level, the API defines php_stream_wrapper objects
which "wrap" around the lower level API to provide support
for retrieving data and meta-data from URLs.
Streams can be cast (converted) into other types of
file-handles, so that they can be used with third-party
libraries without a great deal of trouble. This allows
those libraries to access data directly from URL sources.
If your system has the
fopencookie() or funopen()
function, you can even pass any PHP stream to any library
that uses ANSI stdio!
注: The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.