(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::copy — Copiar un fichero interno de un archivo phar a otro fichero nuevo dentro del phar
Nota:
Este método requiere que la opción de php.ini
phar.readonly
esté establecida a0
para que trabaje con objetos Phar. De otra manera, se lanzará una excepción de tipo PharException.
Copia un fichero interno de un archivo phar a otro fichero nuevo dentro del phar. Esta es una alternativa orientada a objetos para usar copy() con la envoltura de flujos phar.
oldfile
newfile
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.
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.
Ejemplo #1 Un ejemplo de Phar::copy()
Este ejemplo muestra el uso de Phar::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 Phar lanzan excepciones, mientras que la envoltura de flujos utiliza trigger_error().
<?php
try {
$phar = new Phar('miphar.phar');
$phar['a'] = 'hola';
$phar->copy('a', 'b');
echo $phar['b']; // imprime "hola"
} 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.phar/a', 'phar//miphar.phar/c');
echo file_get_contents('phar://miphar.phar/c'); // imprimie "hola"
?>