(PECL rar >= 2.0.0)
RarEntry::getStream — Obtener manejador de archivo para entrada
$password
] )Devuelve un manejador de archivo que soporta operaciones de lectura. Este manejador proporciona descompresión al vuelo para esta entrada.
El manejador no es invalidado por llamar a rar_close().
El flujo resultante no tiene verificación de integridad. En particular, archivo corrupto y descifrado con una clave errónea, no será detectado. Es responsabilidad del programador utilizar la entrada CRC para comprobar la integridad, si así lo desea.
password
La contraseña utilizada para cifrar esta entrada. Si la entrada no está cifrada, este valor no se utilizará y puede
ser omitido. Si el parámetro es omitido y la entrada está cifrada, la contraseña dada a
rar_open(), será utilizada. Si una contraseña incorrecta es dada, ya sea explícita
o implícitamente via rar_open(), teste método resultante de flujo producirá error de
salida. Si no se especifica la contraseña y se requiere una, este método fallará y devolverá FALSE
.
Puede comprobar si una entrada está cifrada con RarEntry::isEncrypted().
El manejador de archivo o FALSE
en caso de error.
Versión | Descripción |
---|---|
3.0.0 | Soporte para archivos RAR con nombres de entrada que se repiten ya no es defectuoso. |
Ejemplo #1 Ejemplo de RarEntry::getStream()
<?php
$rar_file = rar_open('example.rar');
if ($rar_file === false)
die("Failed to open Rar archive");
$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if ($entry === false)
die("Failed to find such entry");
$stream = $entry->getStream();
if ($stream === false)
die("Failed to obtain stream.");
rar_close($rar_file); //flujo es independiente de archivo
while (!feof($stream)) {
$buff = fread($stream, 8192);
if ($buff !== false)
echo $buff;
else
break; //error fread
}
fclose($stream);
?>