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