Los flujos ("streams
" en inglés) son un método de
generalización de los ficheros, sockets,
conexiones de red, datos comprimidos y otras operaciones similares,
que comparten operaciones comunes. En su definición más simple,
un flujo
es un recurso que
presenta capacidades de flujo: es decir, que estos objetos pueden
ser leídos o recibir escrituras de manera lineal, y disponen también
de medios para acceder a una posición arbitraria en el flujo.
Un gestor
(literalmente,
wrapper
en inglés), es una función que indica cómo se comporta el flujo específicamente. Es el caso del gestor
http
, que sabe cómo traducir una URL en una
petición HTTP/1.0
a un servidor remoto.
Existen numerosos gestores integrados en PHP
por defecto (ver Protocolos y Envolturas soportados),
y, además, gestores específicos pueden ser añadidos en
los scripts PHP con la función stream_register_wrapper(),
o bien directamente por otra extensión.
Gracias a la flexibilidad de los gestores que pueden ser añadidos a PHP,
no hay límites a las posibilidades ofrecidas. Para conocer la lista
de los gestores actualmente registrados, se puede utilizar la función
stream_get_wrappers().
Un flujo se referencia como:
scheme
://target
scheme
(string) -
El nombre del gestor a utilizar. Por ejemplo, file
,
http
, https
,
ftp
, ftps
, compress.zlib
,
compress.bz
y php
.
Ver Protocolos y Envolturas soportados
para una lista completa de los gestores registrados de PHP.
Si ningún gestor es especificado, se utiliza la función por defecto (típicamente,
file
://).
target
-
Depende del gestor utilizado. Para los flujos relativos a los sistemas
de ficheros, es típicamente una ruta y un nombre de fichero del
fichero deseado. Para los flujos relativos a las redes, es
típicamente el nombre de host, a menudo con una ruta añadida.
Ver también Protocolos y Envolturas soportados
para una descripción de los objetivos de los flujos integrados.