(PECL rar >= 0.1)
RarEntry::extract — Extrai entrada do arquivo
$dir,$filepath = "",$password = NULL,$extended_data = false
RarEntry::extract() extrai os dados da entrada.
Ele criará um novo arquivo no dir especificado
com o nome idêntico ao nome da entrada,
a menos que o segundo argumento seja especificado. Veja abaixo para mais informações.
dirfilepath não for. Se ambos
os parâmetros estiverem vazios, será tentada uma extração para o diretório
atual.
filepathdir e o nome do arquivo original.
passwordfalse.
Se nenhuma senha for fornecida e uma for necessária, este método falhará e retornará false.
Você pode verificar se uma entrada está criptografada com RarEntry::isEncrypted().
extended_datatrue, informações estendidas, como ACLs NTFS e informações do proprietário do Unix, serão definidas nos arquivos de
extração, desde que estejam presentes no arquivo.
Antes da versão 2.0.0, esta função não tratava caminhos corretamente. Use realpath() como solução alternativa.
| Versão | Descrição |
|---|---|
| PECL rar 3.0.0 |
extended_data foi adicionado.
|
| PECL rar 3.0.0 | O suporte para arquivos RAR com nomes de entrada repetidos não apresenta mais defeitos. |
Exemplo #1 Exemplo de RarEntry::extract()
<?php
$rar_file = rar_open('example.rar') or die("Falha ao abrir arquivo Rar");
$entry = rar_entry_get($rar_file, 'Dir/arquivo.txt') or die("Falha ao pesquisar entrada");
$entry->extract('/dir/oara'); // cria /dir/para/Dir/arquivo.txt
$entry->extract(false, '/dir/para/novo_nome.txt'); // cria /dir/para/novo_nome.txt
?>Exemplo #2 Como extrair todos os arquivos do arquivo:
<?php
/* exemplo por Erik Jenssen também conhecido como 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("."); // extrai para o diretório atual
}
rar_close($rar_file);
?>rar://