(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::copy — 将tar/zip归档内部的一个文件复制到归档内的另一个新文件
将tar/zip归档内部的一个文件复制到归档内的另一个新文件。这是使用phar流包装器与copy() 的面向对象替代方法。
from
to
始终返回 true
。
如果源文件不存在,目标文件已存在,写入访问被禁用,打开任一文件失败,读取源文件失败,或者如果将更改写入phar失败则抛出UnexpectedValueException,以及PharException。
示例 #1 PharData::copy() 示例
此示例演示了使用PharData::copy()以及相同操作的等效流包装器性能。这两种方法的主要区别在于错误处理。所有 PharData 方法都会抛出异常,而流包装器则使用trigger_error()。
<?php
try {
$phar = new PharData('myphar.tar');
$phar['a'] = 'hi';
$phar->copy('a', 'b');
echo $phar['b']; // 输出 "phar://myphar.tar/b"
} catch (Exception $e) {
// 处理错误
}
// 以上代码的流包装器等效项。
// 错误时触发 E_WARNING 而不是异常
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // 输出 "hi"
?>