RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream — RĂ©cupĂšre le gestionnaire de fichier pour une entrĂ©e

Description

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

Retourne le gestionnaire de fichier qui supporte les opérations de lecture. Ce gestionnaire permet la décompression à la volée de l'entrée.

Le gestionnaire ne sera pas touché par l'appel à la fonction rar_close().

Avertissement

Le flux résultant ne permet pas de vérifier l'intégrité des données. Par exemple, un fichier corrompu ou crypté avec une clé fausse ne sera pas détecté. Ce sera de la responsabilité du développeur d'utiliser le CRC de l'entrée pour vérifier son intégrité, s'il le souhaite.

Liste de paramĂštres

password
Le mot de passe Ă  utiliser pour dĂ©chiffrer l'entrĂ©e. Si l'entrĂ©e n'est pas cryptĂ©e, la valeur ne sera pas utilisĂ©e et peut ĂȘtre omise. Si ce paramĂštre est omis et que l'entrĂ©e est cryptĂ©e, le mot de passe fourni lors de l'appel Ă  la fonction rar_open() sera utilisĂ©, s'il a Ă©tĂ© fourni. Si un mauvais mot de passe est fourni, soit explicitement, soit implicitement via la fonction rar_open(), le flux rĂ©sultant produira un affichage incorrect. Si aucun mot de passe n'est fourni alors qu'il est nĂ©cessaire, la mĂ©thode Ă©choue et retournera false. Il est possible de vĂ©rifier si l'entrĂ©e est cryptĂ©e en utilisant la mĂ©thode RarEntry::isEncrypted().

Valeurs de retour

Le gestionnaire de fichier, ou false si une erreur survient.

Historique

Version Description
PECL rar 3.0.0 Support des archives RAR dont les entrĂ©es portent le mĂȘme nom.

Exemples

Exemple #1 Exemple avec RarEntry::getStream()

<?php

$rar_file
= rar_open('example.rar');
if (
$rar_file === false)
die(
"Échec lors de l'ouverture de l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if (
$entry === false)
die(
"Impossible de trouver l'entrée demandée");

$stream = $entry->getStream();
if (
$stream === false)
die(
"Échec lors de la rĂ©cupĂ©ration du flux.");

rar_close($rar_file); //le flux est indépendant du fichier

while (!feof($stream)) {
$buff = fread($stream, 8192);
if (
$buff !== false)
echo
$buff;
else
break;
//erreur fread
}

fclose($stream);

?>

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.