Phar::copy

Copy a file internal to the phar archive to another new file within the phar

&reftitle.description; public `bool` `Phar::copy` `string` `from` `string` `to` &phar.write;

Copy a file internal to the phar archive to another new file within the phar. This is an object-oriented alternative to using `copy` with the phar stream wrapper.

&reftitle.parameters;

`from`

`to`

&reftitle.returnvalues;

returns &true; on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

&reftitle.errors;

throws `UnexpectedValueException` if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a `PharException` if writing the changes to the phar fails.

&reftitle.examples;

### A `Phar::copy` example

This example shows using `Phar::copy` and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All Phar methods throw exceptions, whereas the stream wrapper uses `trigger_error`.

    <?php
    try {
        $phar = new Phar('myphar.phar');
        $phar['a'] = 'hi';
        $phar->copy('a', 'b');
        echo $phar['b']; // outputs "hi"
    } catch (Exception $e) {
        // handle error
    }

    // the stream wrapper equivalent of the above code.
    // E_WARNINGS are triggered on error rather than exceptions.
    copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
    echo file_get_contents('phar://myphar.phar/c'); // outputs "hi"
    ?>