PHP 7.3.32 Released!

Phar::copy

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

Phar::copyКопирует один файл внутри phar-архива в другой новый файл внутри phar-архива

Описание

public Phar::copy(string $to, string $from): bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Копирует внутренний файл phar-архива в другой новый файл внутри phar-архива. Это объектно-ориентированная альтернатива использованию copy() с обёрткой потока phar.

Список параметров

to

from

Возвращаемые значения

возвращает true в случае успешного выполнения, но безопаснее заключить вызов метода в блок try/catch и считать его успешным, если не было выброшено исключение.

Ошибки

Выбрасывает исключение UnexpectedValueException если: исходный файл не существует, целевой файл уже существует, доступ на запись отключён, открытие какого-либо файла невозможно или чтение исходного файла потерпело неудачу. Если запись изменений в phar не удалась, будет выброшено исключение PharException.

Примеры

Пример #1 Пример использования Phar::copy()

В этом примере показано использование метода Phar::copy() и эквивалентной ему по функциональности обёртки потока для решения одной и той же задачи. Основным различием между этими двумя подходами является обработка ошибок. Все методы Phar выбрасывают исключения, тогда как обёртка потока использует trigger_error().

<?php
try {
    
$phar = new Phar('myphar.phar');
    
$phar['a'] = 'привет';
    
$phar->copy('a''b');
    echo 
$phar['b']; // будет выведено "привет"
} catch (Exception $e) {
    
// обработка ошибок
}

// обёртка потока, эквивалентная коду выше.
// в случае возникновения ошибки будет вызвано предупреждение E_WARNING, а не исключение
copy('phar://myphar.phar/a''phar//myphar.phar/c');
echo 
file_get_contents('phar://myphar.phar/c'); // будет выведено "привет"
?>

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top