(PECL rar >= 2.0.0)
RarEntry::getStream — 获取条目的文件句柄
返回一个支持读取操作的文件句柄。此句柄为该条目提供动态解压缩。
调用 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);
?>