Phar::convertToData

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

Phar::convertToData将 phar 档案转换为非可执行的 tar 或 zip 文件

说明

public Phar::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

此方法用于将可执行的 phar 档案转换为 tar 或 zip 文件。为了使 tar 或 zip 不可执行,phar 存根和 phar 别名文件将从新创建的档案中删除。

如果没有指定任何更改,此方法将在档案为 phar 文件格式时抛出 BadMethodCallException。对于 tar 或 zip 文件格式的档案,此方法会将档案转换为不可执行的档案。

如果成功,该方法会在磁盘上创建一个新的档案,并返回一个 PharData 对象。旧的档案不会从磁盘中删除,应该在进程结束后手动完成。

参数

format

这应该是一个 Phar::TARPhar::ZIP。如果设置为 null,将保留现有文件格式。

compression

这应该是一个 Phar::NONE 表示不进行整个档案压缩,Phar::GZ 表示基于 zlib 的压缩,Phar::BZ2 表示基于 bzip 的压缩。

extension

此参数用于覆盖转换档案的默认文件扩展名。请注意,.phar 不能用于不可执行的 tar 或 zip 档案的文件名中的任何位置。

如果转换为基于 tar 的 phar 档案,默认扩展名将是 .tar.tar.gz.tar.bz2,具体取决于指定的压缩方式。对于基于 zip 的档案,默认扩展名是 .zip

返回值

该方法在成功时返回一个 PharData 对象,或者在失败时返回 null

错误/异常

此方法在无法压缩时抛出 BadMethodCallException,指定了未知的压缩方法,请求的档案正在使用 Phar::startBuffering() 进行缓冲,并且没有使用 Phar::stopBuffering() 完成,以及在 phar 创建过程中遇到任何问题时抛出 PharException

变更日志

版本 说明
8.0.0 formatcompressionextension 现在可以为空。

示例

示例 #1 一个 Phar::convertToData() 示例

使用 Phar::convertToData()

<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// 注意,myphar.phar.tar *没有* 被解除链接
// 将其转换为不可执行的 tar 文件格式
// 创建 myphar.tar
$tar = $tarphar->convertToData();
// 转换为不可执行的 zip 格式,创建 myphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// 创建 myphar.tbz
$tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// 创建 myphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // 抛出异常
} catch (Exception $e) {
// 在这里处理错误
}
?>

参见

添加注释

用户贡献的注释

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