(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)
ZipArchive::getExternalAttributesIndex — Obtener los atributos externos de una entrada definida por su índice
$index
,&$opsys
,&$attr
,$flags
= 0Recuperar 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.
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";
}
?>