(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)
ZipArchive::getExternalAttributesIndex — Obtener los atributos externos de una entrada definida por su índice
$index
, int &$opsys
, int &$attr
[, int $flags
] ) : boolRecuperar los atributos externos de una entrada definida por su índice.
index
El índice de la entrada.
opsys
En caso de éxito, recibe el código del sistema operativo definido por una de las constantes ZipArchive::OPSYS_.
attr
En caso de éxito, recibe los atributos externos. El valor dependerá del sistema operativo.
flags
Si flags se establece a ZipArchive::FL_UNCHANGED
, se devuelven los atributos
originales sin cambios.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Este ejemplo extrae todas las entradas de un archivo ZIP test.zip y asigna los permisos Unix tomados de los atributos externos.
Ejemplo #1 Extraer todas las entradas con permisos Unix
<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
for ($idx=0 ; $s = $zip->statIndex($idx) ; $idx++) {
if ($zip->extractTo('.', $s['name'])) {
if ($zip->getExternalAttributesIndex($idx, $opsys, $attr)
&& $opsys==ZipArchive::OPSYS_UNIX) {
chmod($s['name'], ($attr >> 16) & 0777);
}
}
}
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>