PharData::copy

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::copyCopiar un fichero interno de un archivo phar a otro fichero nuevo dentro del phar

Descripción

PharData::copy ( string $oldfile , string $newfile ) : bool

Copia un fichero interno de un archivo tar/zip a otro fichero nuevo dentro del mismo archivo. Esta es una alternativa orientada a objetos para usar copy() con la envoltura de flujos phar.

Parámetros

oldfile

newfile

Valores devueltos

Devuelve TRUE en caso de éxito, pero es más seguro encerrar la llamada al método en un bloque try/catch y asumir el éxito si no se lanza ninguna excepción.

Errores/Excepciones

Lanza una excepción de tipo UnexpectedValueException si el fichero origen no exite, el fichero destino ya existe, el acceso a escritura está deshabilitado, la apertura de cualquiera de los dos ficheros falla, la lectura del fichero fuente falla, o una excepción de tipo PharException si la escritura de los cambios del phar falla.

Ejemplos

Ejemplo #1 Un ejemplo de Phar::copy()

Este ejemplo muestra el uso de PharData::copy() y su equivalente con envoltura de flujos. La principal diferencia entre los dos enfoques es el manejo de errores. Todos los métodos de PharData lanzan excepciones, mientras que la envoltura de flujos utiliza trigger_error().

<?php
try {
    
$phar = new PharData('miphar.tar');
    
$phar['a'] = 'hola';
    
$phar->copy('a''b');
    echo 
$phar['b']; // imprime "phar://miphar.tar/b"
} catch (Exception $e) {
    
// manejar errores
}

// el equivalente con envoltura de flujos del código de arriba.
// Se dispara E_WARNINGS en caso de error en vez de excepciones.
copy('phar://miphar.tar/a''phar//miphar.tar/c');
echo 
file_get_contents('phar://miphar.tar/c'); // imprime "hola"
?>