PHP Conference Nagoya 2025

ZipArchive::getExternalAttributesIndex

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

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

Описание

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

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

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

index

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

opsys

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

attr

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

flags

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

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

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

Примеры

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

Пример #1 Извлекаем все записи с их правами 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
"готово\n";
} else {
echo
"ошибка\n";
}
?>
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top