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);
?>
기타
- RarEntry::extract() - 아카이브에서 항목 추출
- rar:// wrapper