PHP8 RarEntry::getStream

2024-02-25 17:53 更新

(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() 检查条目是否加密。

返回值 

The file handler 或者在失败时返回 false.

更新日志 

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

示例 

示例 #1 RarEntry::getStream() example

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

?>

参见 

  • RarEntry::extract() - 从存档中提取条目
  • rar:// wapper


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号