PHP Conference Japan 2024

Phar::copy

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

Phar::copy将 phar 归档文件内部的一个文件复制到 phar 内部的另一个新文件

描述

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

注意:

此方法需要 php.ini 设置 phar.readonly 设置为 0 才能对 Phar 对象起作用。否则,将抛出 PharException

将 phar 归档文件内部的一个文件复制到 phar 内部的另一个新文件。这是一种面向对象的替代方法,用于使用 phar 流封装器使用 copy()

参数

from

to

返回值

始终返回 true

错误/异常

如果源文件不存在,目标文件已存在,写入访问被禁用,打开任一文件失败,读取源文件失败,或者如果将更改写入 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']; // 输出 "phar://myphar.phar/b"
} catch (Exception $e) {
// 处理错误
}

// 上述代码的流封装器等效项。
// E_WARNING 在出错时触发而不是异常
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo
file_get_contents('phar://myphar.phar/c'); // 输出 "hi"

?>

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top