(no version information, might be only in CVS)
php_stream_make_seekable -- Converte o fluxo para um fluxo que suporta pesquisaphp_stream_make_seekable() testa se origstream é pesquisável. Se não for, copiará os dados em um novo fluxo temporário. Se tiver sucesso, newstream sempre é editada para a stream que é válida para o uso, mesmo que a original seja pesquisável.
flags permite que você especifique sua preferência pelo fluxo pesquisável que é retornado: use PHP_STREAM_NO_PREFERENCE para usar o fluxo pesquisável padrão (que usa um buffer em memória que expande dinamicamente, mas muda para um fluxo para um arquivo temporário quando fica grande demais), ou use PHP_STREAM_PREFER_STDIO para usar um arquivo temporário normal como fluxo.
Tabela 63-1. Valores de retorno de php_stream_make_seekable()
Valor | Significado |
---|---|
PHP_STREAM_UNCHANGED | Fluxo original é pesquisável. newstream recebe o valor de origstream. |
PHP_STREAM_RELEASED | Fluxo original não era pesquisável e foi liberado. newstream recebe o valor do novo fluxo pesquisável. Você não deve acessar origstream depois desse ponto. |
PHP_STREAM_FAILED | Um erro ocorreu enquanto tentando fazer a conversão. newstream recebe o valor de NULL; origstream ainda é válido. |
PHP_STREAM_CRITICAL | Um erro ocorreu enquanto tentando converter o fluxo que deixou origstream em um estado indeterminado. newstream recebe o valor de NULL e é altamente recomendado que você feche origstream. |
Nota: Se você precisar pesquisar e escrever em um fluxo, não faz sentido usar essa função, porque o fluxo que ela retorna não é necessariamente presa ao mesmo recurso do fluxo original.
Nota: Se você só precisa procurar para frente, não há necessidade de chamar essa função, já que a API de fluxos irá emular pesquisa desse tipo quando o parâmetro whence é SEEK_CUR.
Nota: Se origstream for baseado em rede, essa função irá bloquear até todo o conteúdo tenha sido baixado.
Nota: NUNCA chame essa função quando origstream é uma referência por um ponteiro para arquivo em um script PHP! Essa função pode causar que o fluxo seja fechado o que pode causar falhas quando o próximo script acessar o ponteiro para arquivo!
Nota: Em muitos casos, essa função só pode ter sucesso quando origstream é um fluxo recém aberto com nenhum dado nos buffers. Por essa razão, e porque essa função é complicada de se usar corretamente, é recomendado que você use php_stream_open_wrapper() e passe PHP_STREAM_MUST_SEEK nas suas opções ao invés de chamar essa função diretamente.