PHP8 RarEntry::getStream

2024-02-25 17:53 更新

(PECL rar >= 2.0.0)

RarEntry::getStream — 獲取條目的文件處理程序

說明

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

返回一個文件處理程序,該文件處理程序 支持讀取操作。此處理程序提供動態(tài)解壓縮 對于此條目。

處理程序不會因調(diào)用 rar_close() 而失效。

警告

生成的流沒有完整性驗證。特別是文件損壞和 不會檢測到密鑰錯誤的解密。程序員有責(zé)任使用條目的 CRC 如果他愿意的話,檢查完整性。

參數(shù) 

password

用于加密此條目的密碼。如果條目未加密,則不會使用此值,并且可以 省略。如果省略此參數(shù)并加密條目,則將使用提供給 rar_open() 的密碼(如果有)。如果輸入了錯誤的密碼,則顯式 或者通過 rar_open() 隱式地,此方法的結(jié)果流將產(chǎn)生錯誤 輸出。如果未提供密碼,并且需要密碼,則此方法將失敗并返回 false。 您可以使用 RarEntry::isEncrypted() 檢查條目是否加密。

返回值 

The file handler 或者在失敗時返回 false.

更新日志 

版本說明
PECL rar 3.0.0對具有重復(fù)條目名稱的 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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號