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 (tipicamente file://).
  • 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.