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 Extended_data가 추가되었습니다.
PECL rar 3.0.0 항목 이름이 반복되는 RAR 아카이브에 대한 지원은 더 이상 결함이 없습니다.

Examples

예제 #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);

?>
                  
                

기타