(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::copy — 将 phar 归档文件中的一个文件复制到归档文件内的另一个新文件中
注意:
此方法要求 php.ini 设置
phar.readonly
被设置为0
才能对 Phar 对象起作用。否则,将抛出 PharException。
将 phar 归档文件中的一个文件复制到归档文件内的另一个新文件中。这是使用 copy() 和 phar 流包装器进行相同操作的面向对象的替代方法。
from
to
成功时返回 true
,但将方法调用包含在 try/catch 块中并假设在没有抛出异常的情况下成功更安全。
如果源文件不存在,目标文件已存在,写入访问被禁用,打开任何一个文件失败,读取源文件失败,或者如果写入 phar 的更改失败,则抛出 UnexpectedValueException;如果写入 phar 的更改失败,则抛出 PharException。
示例 #1 一个 Phar::copy() 示例
此示例展示了使用 Phar::copy() 和相同操作的等效流包装器性能。这两种方法之间的主要区别在于错误处理。所有 Phar 方法都抛出异常,而流包装器使用 trigger_error()。
<?php
try {
$phar = new Phar('myphar.phar');
$phar['a'] = 'hi';
$phar->copy('a', 'b');
echo $phar['b']; // 输出 "hi"
} catch (Exception $e) {
// 处理错误
}
// 上面代码的流包装器等效代码。