PHP8 PharData::copy
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::copy — 将 phar 存档内部的文件复制到 phar 中的另一个新文件
说明
public PharData::copy(string $from, string $to): bool
将 tar/zip 存档内部的文件复制到同一存档中的另一个新文件。 这是使用 copy() 的面向对象的替代方案 phar 流包装器。
参数
from
to
返回值
成功时返回 true,但将方法调用封装在 try/catch 块,如果没有抛出异常,则假定成功。
错误/异常
如果源文件不 exist,目标文件已存在,禁用写入访问,打开 文件失败,读取源文件失败,或者如果写入 phar 的更改失败,则为 PharException。
示例
示例 #1 A PharData::copy() example
此示例演示如何使用 PharData::copy() 和 同一件事的等效流包装器性能。主要 这两种方法的区别在于错误处理。所有 PharData 方法 抛出异常,而流包装器使用 trigger_error()。
<?php
try {
$phar = new PharData('myphar.tar');
$phar['a'] = 'hi';
$phar->copy('a', 'b');
echo $phar['b']; // outputs "phar://myphar.tar/b"
} catch (Exception $e) {
// handle error
}
// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // outputs "hi"
?>