Opções de abertura de Fluxos de Dados (Stream)

Opções de abertura de Fluxos de Dados (Stream) -- Afeta a operação das funções de criação de fluxos

Descrição

Um ou mais desses valores podem ser combinados usando o operador OR.

IGNORE_PATH

Essa é a opção padrão para fluxos; ela faz com que o caminho de inclusão (include_path) não seja procurado para o arquivo requisitado.

USE_PATH

Faz com que o caminho de inclusão (include_path) seja procurado pelo arquivo requisitado.

IGNORE_URL

Faz com que os wrappers de URL registrados sejam ignorados quando tentar abrir o fluxo. Outros wrapper que não usem URLs serão considerados quando decodificado o caminho. Não existe forma oposta a essa opção. A API de fluxos usará todos os wrappers registrados por padrão.

IGNORE_URL_WIN

Nos sistemas Windows, é equivalente à IGNORE_URL. Em todos os outros sistemas, essa opção não tem efeito.

ENFORCE_SAFE_MODE

Faz com que o sistema de fluxos realize checagem de modo seguro (safe_mode) antes de abrir um arquivo. Omissão dessa opção fará com que esses tests sejam ignorados e permitirão a abertura de arquivo que o processo do PHP tenha direito de acesso.

REPORT_ERRORS

Quando essa opção é configurada, e ocorrer um erro durante a abertura do arquivo ou URL, a API de fluxos chamará a função php_error para você. Isso é útil porque o caminho pode conter informação de usuário/senha que não devem ser mostradas na saída do navegador (seria um risco de seguraça fazê-lo). Quando a API de fluxos causa o erro, irá primeiro tirar informações de usuário/senha do caminho, fazendo a mensagem de erro ser mostrada no navegador sem ser um risco.

STREAM_MUST_SEEK

Essa opção é útil quando sua extensão realmente deve ser capaz de procurar aleatóreamente dados em um fluxo. Alguns fluxos podem não ser compatíveis com esse tipo de acesso na sua forma nativa, por isso essa opção faz com que seja checado se o fluxo tem suporte a acesso aleatório. Se não tiver, será feita uma cópia do fluxo em armazenamento temporário (Que pode ser um arquivo temporário ou um fluxo de memória) que suporte acesso aleatório. Note que essa opção não é útil quando você quiser procurar no fluxo e escrever no mesmo, porque o fluxo que você está acessando pode não estar ligado ao verdadeiro recurso que você requisitou.

Nota: Se o recurso requisitado for baseado em rede, essa opção causará que o processo seja bloqueado até o conteúdo completo seja baixado.

STREAM_WILL_CAST

Se sua extensão usar um biblioteca de terceiros que expera um ponteiro para arquivo (FILE*) ou descritor de arquivo, você pode usar essa opção para que a API de fluxo abra o recurso mas evite usar buffers. Você pode então usar php_stream_cast() para pegar o FILE* ou descritor do arquivo que a biblioteca precisa.

Isso é particularmente útil quando acessando URLs HTTP onde o início real dos dados do fluxo se encontra depois de um offset indeterminado no fluxo.

Uma vez que essa opção desabilita buffers no nível da API de fluxos, você pode sofrer uma queda de performance quando usar funções de fluxo nos fluxos; Isso é aceitável porque você disse aos fluxos que estará usando funções que tem a mesma implementação de fluxos. Só use essa opção quando você tiver certeza que precisa dela.