(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.
indexEl índice de la entrada.
opsysEn caso de éxito, recibe el código del sistema operativo definido por una de las constantes ZipArchive::OPSYS_.
attrEn 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 & 07777));
}
}
}
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>