(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)
ZipArchive::getExternalAttributesIndex — Récupère les attributs externes d'une entrée définie par son index
$index
, int &$opsys
, int &$attr
[, int $flags
] ) : boolRécupére les attributs externes d'une entrée définie par son index.
indexIndex de l'entrée.
opsysEn cas de succès, récupère le code du système d'exploitation défini par une des constantes ZipArchive::OPSYS_.
attrEn cas de succès, récupère les attributs externes, la valeur dépend du système d'exploitation.
flags
Si ce drapeau est positionné à ZipArchive::FL_UNCHANGED,
les attributs originaux inchangé sont retournées.
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
Cet exemple extrait toutes les entrées de l'archive ZIP test.zip et définit les droits Unix à partir des attributs externes.
Exemple #1 Extrait toutes les entrées avec leurs droits 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";
}
?>