diff --git a/reference/zip/ziparchive/getexternalattributesindex.xml b/reference/zip/ziparchive/getexternalattributesindex.xml index 8d5a28d037..5c7002d699 100644 --- a/reference/zip/ziparchive/getexternalattributesindex.xml +++ b/reference/zip/ziparchive/getexternalattributesindex.xml @@ -83,7 +83,7 @@ if ($zip->open('test.zip') === TRUE) { if ($zip->extractTo('.', $s['name'])) { if ($zip->getExternalAttributesIndex($idx, $opsys, $attr) && $opsys==ZipArchive::OPSYS_UNIX) { - chmod($s['name'], ($attr & 07777)); + chmod($s['name'], ($attr >> 16) & 0777); } } } diff --git a/reference/zip/ziparchive/setexternalattributesname.xml b/reference/zip/ziparchive/setexternalattributesname.xml index 0a6be104d7..20a125c01e 100644 --- a/reference/zip/ziparchive/setexternalattributesname.xml +++ b/reference/zip/ziparchive/setexternalattributesname.xml @@ -81,7 +81,7 @@ $zip = new ZipArchive(); $stat = stat($filename='test.txt'); if (is_array($stat) && $zip->open('test.zip', ZipArchive::CREATE) === TRUE) { $zip->addFile($filename); - $zip->setExternalAttributesName($filename, ZipArchive::OPSYS_UNIX, $stat['mode']); + $zip->setExternalAttributesName($filename, ZipArchive::OPSYS_UNIX, $stat['mode'] << 16); $zip->close(); echo "Ok\n"; } else {