ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndexRecupera os atributos externos de uma entrada definida pelo seu índice

Descrição

public ZipArchive::getExternalAttributesIndex(
    int $index,
    int &$opsys,
    int &$attr,
    int $flags = 0
): bool

Recupera os atributos externos de uma entrada definida pelo seu índice.

Parâmetros

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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo extrai todas as entradas de um arquivo ZIP test.zip e define os direitos Unix a partir dos atributos externos.

Example #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";
}
?>