PHP Conference Japan 2024

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(
"无法打开 Rar 档案");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if (
$entry === false)
die(
"找不到此条目");

$stream = $entry->getStream();
if (
$stream === false)
die(
"无法获取流.");

rar_close($rar_file); //流独立于文件

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

fclose($stream);

?>

参见

添加注释

用户贡献的注释

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