RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extract — 아카이브에서 항목 추출


설명

public RarEntry::extract(
    string $dir,
    string $filepath = "",
    string $password = NULL,
    bool $extended_data = false
): bool
                

RarEntry::extract()는 항목의 데이터를 추출합니다. 두 번째 인수가 지정되지 않는 한 항목 이름과 동일한 이름으로 지정된 dir에 새 파일을 생성합니다. 자세한 내용은 아래를 참조하세요.


매개변수

dir
파일을 추출해야 하는 디렉토리의 경로입니다. 이 매개변수는 filepath가 아닌 경우에만 고려됩니다. 두 매개변수가 모두 비어 있으면 현재 디렉토리로의 추출이 시도됩니다.
filepath
추출된 파일의 디렉토리 및 파일 이름이 포함된 경로(상대 또는 절대)입니다. 이 매개변수는 dir 매개변수와 원래 파일 이름을 모두 무시합니다.
password
이 항목을 암호화하는 데 사용되는 암호입니다. 항목이 암호화되지 않은 경우 이 값은 사용되지 않으며 생략할 수 있습니다. 이 매개변수가 생략되고 항목이 암호화되면 rar_open()에 제공된 암호가 있으면 사용됩니다. rar_open()을 통해 명시적으로 또는 암시적으로 잘못된 암호가 제공되면 CRC 검사가 실패하고 이 메서드는 실패하고 false를 반환합니다. 암호가 제공되지 않고 암호가 필요한 경우 이 메서드는 실패하고 false를 반환합니다. 항목이 RarEntry::isEncrypted()로 암호화되었는지 확인할 수 있습니다.
extended_data
true인 경우 아카이브에 있는 한 NTFS ACL 및 Unix 소유자 정보와 같은 확장 정보가 추출 파일에 설정됩니다.

경고 버전 2.0.0 이전에는 이 함수가 상대 경로를 올바르게 처리하지 못했습니다. 해결 방법으로 realpath()를 사용하십시오.


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전 설명
PECL rar 3.0.0 Extended_data가 추가되었습니다.
PECL rar 3.0.0 항목 이름이 반복되는 RAR 아카이브에 대한 지원은 더 이상 결함이 없습니다.

Examples

예제 #1 RarEntry::extract() 예제

                  
<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

$entry->extract('/dir/to'); // create /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // create /dir/to/new_name.txt

?>
                  
                

예제 #2 아카이브의 모든 파일을 추출하는 방법:

                  
<?php

/* example by Erik Jenssen aka erix */

$filename = "foobar.rar";
$filepath = "/home/foo/bar/";

$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
    $entry = rar_entry_get($rar_file, $file);
    $entry->extract("."); // extract to the current dir
}
rar_close($rar_file);

?>
                  
                

기타