RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream获取条目文件句柄

说明

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

返回支持读取操作的文件句柄。该句柄为该条目提供即时解压缩。

调用 rar_close() 不会使句柄失效。

警告

结果流没有完整性验证。特别是,文件损坏和使用错误密钥解密不会被检测到。如果程序员希望,他需要使用条目的 CRC 来检查完整性。

参数

password

用于加密此条目的密码。如果条目未加密,则不会使用此值,可以省略。如果此参数省略且条目已加密,将使用传递给 rar_open() 的密码(如果有)。如果给出了错误的密码(无论是显式给出的还是通过 rar_open() 隐式给出的),此方法的结果流将生成错误的输出。如果未给出密码而需要密码,则此方法将失败并返回 false。可以使用 RarEntry::isEncrypted() 检查条目是否已加密。

返回值

文件句柄或 false(失败时)。

变更日志

版本 说明
PECL rar 3.0.0 不再存在对具有重复条目名称的 RAR 存档的支持缺陷。

范例

范例 #1 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); //stream is independent from file

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

fclose($stream);

?>

参见

添加注释

用户贡献的注释

此页没有用户贡献的注释。
To Top