(PECL rar >= 0.1)
RarEntry::extract — Extraer entrada del archivo
$dir,$filepath = "",$password = NULL,$extended_data = false
RarEntry::extract() extrae los datos de entrada.
Esto creará un nuevo archivo en el
dir especificado con el mismo nombre que el nombre de la entrada,
a menos que el segundo argumento sea especificado. Siga leyendo más abajo para obtener mayor información.
dirfilepath. Si ambos
parámetros están vacíos se intentará una extracción en el directorio actual.
filepathdir y el nombre del archivo original.
passwordfalse.
Si no se da la contraseña y se requiere una, este método fallará y devolverá false.
Puede comprobar si una entrada está cifrada con RarEntry::isEncrypted().
extended_datatrue, información extendida tales como NTFS ACLs e información propietaria Unix será establecida en los archivos
extraidos, siempre que esta esté presente en el archivo.
Antes de la versión 2.0.0, esta función no manejaba las rutas relativas correctamente. Utilice realpath() como una solución.
| Versión | Descripción |
|---|---|
| PECL rar 3.0.0 |
extended_data fue añadido.
|
| PECL rar 3.0.0 | Soporte para archivos RAR con nombres de entrada que se repiten ya no es defectuoso |
Ejemplo #1 Ejemplo de 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'); // crear /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // crear /dir/to/new_name.txt
?>Ejemplo #2 ¿Cómo extraer todos los archivos en archivo?:
<?php
/* ejemplo por Erik Jenssen también conocido 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("."); // extraer el directorio actual
}
rar_close($rar_file);
?>rar:// wrapper