RarEntry::getStream
(PECL rar >= 2.0.0)
RarEntry::getStream — Obtém manipulador de arquivo para entrada
Descrição
Retorna um manipulador de arquivos que oferece suporte a operações de leitura. Este manipulador fornece descompressão instantânea para esta entrada.
manipulador não é invalidado chamando rar_close().
O fluxo resultante não possui verificação de integridade. Em particular, a corrupção e a descriptografia de arquivos com uma chave errada não serão detectadas. É responsabilidade do programador usar o CRC da entrada para verificar a integridade, se assim desejar.
Parâmetros
password
-
A senha usada para criptografar esta entrada. Se a entrada não estiver criptografada, este valor não será usado e poderá ser omitido. Se este parâmetro for omitido e a entrada for criptografada, será usada a senha fornecida para rar_open(), se houver. Se uma senha errada for fornecida, explícita ou implicitamente via rar_open(), o fluxo resultante deste método produzirá uma saída errada. Se nenhuma senha for fornecida e uma for necessária, este método falhará e retornará
false
. Você pode verificar se uma entrada está criptografada com RarEntry::isEncrypted().
Valor Retornado
O manipulador de arquivo ou false
em caso de falha.
Registro de Alterações
Versão | Descrição |
---|---|
PECL rar 3.0.0 | O suporte para arquivos RAR com nomes de entrada repetidos não apresenta mais defeitos. |
Exemplos
Example #1 Exemplo de RarEntry::getStream()
<?php
$rar_file = rar_open('exemplo.rar');
if ($rar_file === false)
die("Falha ao abrir arquivo Rar");
$entry = rar_entry_get($rar_file, 'Dir/arquivo.txt');
if ($entry === false)
die("Falha ao pesquisar tal entrada");
$stream = $entry->getStream();
if ($stream === false)
die("Falha ao obter fluxo.");
rar_close($rar_file); // fluxo é independente do arquivo
while (!feof($stream)) {
$buff = fread($stream, 8192);
if ($buff !== false)
echo $buff;
else
break; // erro em fread
}
fclose($stream);
?>