array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'ziparchive.getexternalattributesindex.php', 1 => 'ZipArchive::getExternalAttributesIndex', 2 => 'Retrieve the external attributes of an entry defined by its index', ), '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' => 'en', 'path' => 'reference/zip/ziparchive/getexternalattributesindex.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>

ZipArchive::getExternalAttributesIndex

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

ZipArchive::getExternalAttributesIndexRetrieve the external attributes of an entry defined by its index

Опис

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

Retrieve the external attributes of an entry defined by its index.

Параметри

index
Index of the entry.
opsys
On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.
attr
On success, receive the external attributes. Value depends on operating system.
flags
If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.

Значення, що повертаються

Повертає true у разі успіху або false в разі помилки.

Приклади

This example extract all the entries of a ZIP archive test.zip and set the Unix rights from external attributes.

Приклад #1 Extract all entries with Unix rights

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