Set the contents of an internal file to those of an external file

# Phar::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetSet — Set the contents of an internal file to those of an external file

### 说明

public function Phar::offsetSet(string `$localName`, resource|string `$value`): void

> 注意: 此方法需要 将 php.ini 中的 `phar.readonly` 设为 `0` 以适合 Phar 对象. 否则, 将抛出PharException.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

### 参数

`localName`

  The filename (relative path) to modify in a Phar.

`value`

  Content of the file.

### 返回值

No return values.

### 错误／异常

if phar.readonly is `1`, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to `0`. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

### 示例

示例 #1 A Phar::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the `[]` operator.

    <?php
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    try {
        // calls offsetSet
        $p['file.txt'] = 'Hi there';
    } catch (Exception $e) {
        echo 'Could not modify file.txt:', $e;
    }
    ?>

### 注释

> 注意: Phar::addFile(), Phar::addFromString() and Phar::offsetSet() save a new phar archive each time they are called. If performance is a concern, Phar::buildFromDirectory() or Phar::buildFromIterator() should be used instead.

### 参见

- Phar::offsetExists() - Determines whether a file exists in the phar
- Phar::offsetGet() - Gets a PharFileInfo object for a specific file
- Phar::offsetUnset() - Remove a file from a phar

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open