#!/usr/bin/env php open($archive); if ($err !== TRUE) { die("Can't read $archive\n"); } echo "Archive: $archive\n"; for ($i=0 ; $i<$zip->numFiles ; $i++) { $e = $zip->statIndex($i); //var_dump($zip->getExternalAttributesIndex($i, $opsys, $attr), $opsys, $attr); if ($debug || $zip->extractTo($target, $e['name'])) { if ($zip->getExternalAttributesIndex($i, $opsys, $attr) && $opsys==ZipArchive::OPSYS_UNIX) { $attr = $attr >> 16; if ($debug || chmod("$target/{$e['name']}", $attr & 0777)) { if ($verbose) { printf("+ %s (%o)\n", $e['name'], $attr); } } else { printf("* Can't chmod %s to %o\n", $e['name'], $attr); } } else { echo "* Can't write $target/{$e['name']}\n"; } } } $zip->close();