(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)
ZipArchive::setExternalAttributesName β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²Π½Π΅ΡΠ½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
$name,$opsys,$attr,$flags = 0Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²Π½Π΅ΡΠ½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
nameopsysattrflags
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» Π°ΡΡ ΠΈΠ²Π° ZIP test.zip ΠΈ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» test.txt Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Unix Π² Π²ΠΈΠ΄Π΅ Π²Π½Π΅ΡΠ½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ #1 Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ Π΅Π³ΠΎ ΠΏΡΠ°Π²Π°ΠΌΠΈ Unix
<?php
$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'] << 16);
$zip->close();
echo "Π³ΠΎΡΠΎΠ²ΠΎ\n";
} else {
echo "ΠΎΡΠΈΠ±ΠΊΠ°\n";
}
?>