Set the external attributes of an entry defined by its name

- « ZipArchive::setExternalAttributesIndex

- ZipArchive::setMtimeIndex »

- PHP Manual
- ZipArchive
- Set the external attributes of an entry defined by its name

# ZipArchive::setExternalAttributesName

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

ZipArchive::setExternalAttributesName — Set the external attributes of an entry defined by its name

### Description

public ZipArchive::setExternalAttributesName(
string `$name`,
int `$opsys`,
int `$attr`,
int `$flags` = 0
): bool

Set the external attributes of an entry defined by its name.

### Parameters

`name`

  Name of the entry.

`opsys`

  The operating system code defined by one of the ZipArchive::OPSYS_ constants.

`attr`

  The external attributes. Value depends on operating system.

`flags`

  Optional flags. Currently unused.

### Return Values

Returns `true` on success or `false` on failure.

### Examples

This example opens a ZIP file archive test.zip and add the file test.txt with its Unix rights as external attributes.

Example #1 Archive a file, with its Unix rights

    <?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 "Ok\n";
    } else {
        echo "KO\n";
    }
    ?>