PHP Conference Japan 2024

Phar::extractTo

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

Phar::extractTo将 phar 归档文件的内容提取到目录中

描述

public Phar::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

将 phar 归档文件中的所有文件提取到磁盘。提取的文件和目录保留在归档文件中存储的权限。可选参数允许对要提取的文件进行可选控制,以及是否可以覆盖磁盘上的现有文件。第二个参数 files 可以是要提取的文件或目录的名称,也可以是要提取的文件和目录名称的数组。默认情况下,此方法不会覆盖现有文件,第三个参数可以设置为 true 以启用文件的覆盖。此方法类似于 ZipArchive::extractTo()

参数

directory

将给定的 files 提取到的路径

files

要提取的文件或目录的名称,或要提取的文件/目录的数组,null 跳过此参数

overwrite

设置为 true 以启用覆盖现有文件

返回值

成功时返回 true,但最好检查是否有抛出的异常,如果未抛出异常则假定成功。

错误/异常

如果在将更改刷新到磁盘时发生错误,则抛出 PharException

示例

示例 #1 Phar::extractTo() 示例

<?php
try {
$phar = new Phar('myphar.phar');
$phar->extractTo('/full/path'); // 提取所有文件
$phar->extractTo('/another/path', 'file.txt'); // 仅提取 file.txt
$phar->extractTo('/this/path',
array(
'file1.txt', 'file2.txt')); // 仅提取 2 个文件
$phar->extractTo('/third/path', null, true); // 提取所有文件并覆盖
} catch (Exception $e) {
// 处理错误
}
?>

备注

注意:

Windows NTFS 文件系统不支持文件名中的一些字符,即 <|>*?":。也不支持以点结尾的文件名。与某些提取工具相反,此方法不会用下划线替换这些字符,而是无法提取此类文件。

参见

添加注释

用户贡献的注释 1 条注释

msucco at mac dot com
5 年前
在命令行(*nix)上,您可以使用以下命令提取 phar 文件

$ mkdir tmp && cd $_
$ phar extract -f ../file.phar
To Top