Introdução
Fluxos são
o modo de se generalizar operações de arquivos, rede, compressão de dados e
outras que compartilham um conjunto comum de funções e usos. Em
sua definição mais simples, um fluxo
é um
objeto tipo resource que exibe comportamento
de arquivo. Isto é, ele pode ser lido ou escrito de forma
linear, e pode ser pesquisado com fseek() até
uma localização arbitrária dentro do fluxo.
Um empacotador
é um código adicional que mostra ao fluxo como lidar
com protocolos/codificações específicas. Por exemplo, o empacotador http
sabe como traduzir uma URL em uma requisição HTTP/1.0
de um arquivo em um servidor remoto. Existem vários empacotadores
no PHP por padrão (consulte Protocolos e empacotadores suportados),
e empactotadores adicionais, customizados, que podem ser incluídos tanto em um
script PHP usando stream_wrapper_register(),
ou diretamente de uma extensão.
Como qualquer variedade de empacotadores pode ser adicionada ao PHP,
não há limite definido do que pode ser feito com eles. Para acessar a lista
de empacotadores registrados atualmente, use a função stream_get_wrappers().
Um fluxo é referenciado como: esquema
://alvo
-
esquema
(string) - O nome do empacotador a ser usado. Exemplos incluem: file, http, https, ftp, ftps, compress.zlib, compress.bz2 e php. Consulte Protocolos e empacotadores suportados para uma lista de empacotadores embutidos no PHP. Se nenhum empacotador for especificado, o padrão da função é usado (tipicamentefile
://). -
alvo
- Depende do empacotador em uso. Para fluxos relacionados a sistemas de arquivos é tipicamente um caminho e nome para o arquivo desejado. Para fluxos relacionados a rede é tipicamente um nome de host, frequentemente seguido por um caminho. Novamente, consulte Protocolos e empacotadores suportados para uma descrição de alvos para os fluxos pré-existentes.