array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'ziparchive.getexternalattributesindex.php', 1 => 'ZipArchive::getExternalAttributesIndex', ), 'up' => array ( 0 => 'class.ziparchive.php', 1 => 'ZipArchive', ), 'prev' => array ( 0 => 'ziparchive.getcommentname.php', 1 => 'ZipArchive::getCommentName', ), 'next' => array ( 0 => 'ziparchive.getexternalattributesname.php', 1 => 'ZipArchive::getExternalAttributesName', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/zip/ziparchive/getexternalattributesindex.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)
ZipArchive::getExternalAttributesIndex — Recupera os atributos externos de uma entrada definida pelo seu índice
$index
,&$opsys
,&$attr
,$flags
= 0Recupera os atributos externos de uma entrada definida pelo seu índice.
index
Índice da entrada.
opsys
Em caso de sucesso, recebe o código do sistema operacional definido por uma das constantes ZipArchive::OPSYS_.
attr
Em caso de sucesso, recebe os atributos externos. O valor depende do sistema operacional.
flags
Se flags estiver definido como ZipArchive::FL_UNCHANGED
, os atributos originais inalterados
são retornados.
Este exemplo extrai todas as entradas de um arquivo ZIP test.zip e define os direitos Unix a partir dos atributos externos.
Exemplo #1 Extrair todas as entradas com direitos 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";
}
?>