ZipArchive::getExternalAttributesIndex

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

ZipArchive::getExternalAttributesIndexИзвлечь внешние атрибуты записи по ее индексу

Описание

public ZipArchive::GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr , int $flags = ? ) : bool

Извлекает внешние атрибуты записи по ее индексу.

Список параметров

index

Индекс записи.

opsys

В случае успеха сюда записывается код операционной системы, заданный одной из констант ZipArchive::OPSYS_.

attr

В случае успеха сюда записываются внешние атрибуты. Значения зависят от операционной системы.

flags

Если задано как ZipArchive::FL_UNCHANGED, будут возвращены оригинальные неизмененные атрибуты.

Возвращаемые значения

Возвращает true в случае успешного завершения или false в случае возникновения ошибки.

Примеры

В этом примере извлекаются все файлы из архива test.zip и устанавливает им права Unix, полученные из внешних атрибутов.

Пример #1 Извлекаем все записи с их правами Unix

<?php
$zip 
= new ZipArchive();
if (
$zip->open('test.zip') === TRUE) {
    for (
$idx=$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 
"готово\n";
} else {
    echo 
"ошибка\n";
}
?>