Usar fluxos de dados é muito parecido com usar a funções da stdio ANSI. A diferença principal é como você obtem um handle de fluxo para começar. Na maioria dos casos, você usará php_stream_open_wrapper() para obter esse handle. Essa função funciona de forma análoga à fopen, como pode ser visto no exemplo abaixo:
A tabela abaixo mostra os fluxos equivalentes para as funções mais comuns da stdio ANSI. A não ser que esteja comentado o contrário, as semânticas das funções são idênticas.
Tabela 63-1. Funções equivalentes à stdio ANSI na API de Fluxos de Dados
Função stdio ANSI | Função de Fluxo de Dados do PHP | Comentário |
---|---|---|
fopen | php_stream_open_wrapper | A API inclui parâmetros adicionais |
fclose | php_stream_close | |
fgets | php_stream_gets | |
fread | php_stream_read | O parâmetro nmemb tem o valor de 1, então o protótipo parece mais com read(2) |
fwrite | php_stream_write | O parâmetro nmemb tem o valor de 1, então o protótipo parece mais com write(2) |
fseek | php_stream_seek | |
ftell | php_stream_tell | |
rewind | php_stream_rewind | |
feof | php_stream_eof | |
fgetc | php_stream_getc | |
fputc | php_stream_putc | |
fflush | php_stream_flush | |
puts | php_stream_puts | Mesma semântica de puts, NÂO de fputs |
fstat | php_stream_stat | A API tem uma estrutura stat mais rica |