CakeFest 2024: The Official CakePHP Conference

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStreamObtener manejador de archivo para entrada

Descripción

public RarEntry::getStream(string $password = ?): resource|false

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().

Advertencia

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.

Parámetros

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().

Valores devueltos

El manejador de archivo o false en caso de error.

Historial de cambios

Versión Descripción
PECL rar 3.0.0 Soporte para archivos RAR con nombres de entrada que se repiten ya no es defectuoso.

Ejemplos

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);

?>

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top