PHP Phar类

2024-03-12 87

Phar类是PHP提供的一个高级接口,用于访问和创建Phar存档,可以轻松地操作和管理Phar存档文件,包括添加、删除、提取和修改其中的文件内容。Phar类还提供了一些方便的方法,用于处理存档中的文件和目录,以及执行自定义的操作,如签名验证和加密保护。

一、Phar类摘要

class Phar extends RecursiveDirectoryIterator implements Countable, ArrayAccess {

/* 继承的常量 */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;

/* 常量 */
const int BZ2;
const int GZ;
const int NONE;
const int PHAR;
const int TAR;
const int ZIP;
const int COMPRESSED;
const int PHP;
const int PHPS;
const int MD5;
const int OPENSSL;
const int OPENSSL_SHA256;
const int OPENSSL_SHA512;
const int SHA1;
const int SHA256;
const int SHA512;

/* 方法 */
public __construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
final public static apiVersion(): string
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
final public static canCompress(int $compression = 0): bool
final public static canWrite(): bool
public compress(int $compression, ?string $extension = null): ?Phar
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public count(int $mode = COUNT_NORMAL): int
final public static createDefaultStub(?string $index = null, ?string $webIndex = null): string
public decompress(?string $extension = null): ?Phar
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public getAlias(): ?string
public getMetadata(array $unserializeOptions = []): mixed
public getModified(): bool
public getPath(): string
public getSignature(): array|false
public getStub(): string
final public static getSupportedCompression(): array
final public static getSupportedSignatures(): array
public getVersion(): string
public hasMetadata(): bool
final public static interceptFileFuncs(): void
public isBuffering(): bool
public isCompressed(): int|false
public isFileFormat(int $format): bool
final public static isValidPharFilename(string $filename, bool $executable = true): bool
public isWritable(): bool
final public static loadPhar(string $filename, ?string $alias = null): bool
final public static mapPhar(?string $alias = null, int $offset = 0): bool
final public static mount(string $pharPath, string $externalPath): void
final public static mungServer(array $variables): void
public offsetExists(string $localName): bool
public offsetGet(string $localName): SplFileInfo
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
final public static running(bool $returnPhar = true): string
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(resource|string $stub, int $length = -1): bool
public startBuffering(): void
public stopBuffering(): void
final public static unlinkArchive(string $filename): bool
final public static webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void
public __destruct()

/* 继承的方法 */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

二、Phar函数

1、Phar::addEmptyDir — 添加一个空目录到 phar 档案。

2、Phar::addFile — 将一个文件从文件系统添加到 phar 档案中。

3、Phar::addFromString — 以字符串的形式添加一个文件到 phar 档案。

4、Phar::apiVersion — 返回 api 版本。

5、Phar::buildFromDirectory — 从目录中的文件构建 phar 存档。

6、Phar::buildFromIterator — 从迭代器构造 phar 存档。

7、Phar::canCompress — 返回 phar 扩展是否支持使用 zlib 或 bzip2 进行压缩。

8、Phar::canWrite — 返回 phar 扩展是否支持写入和创建 phar。

9、Phar::compress — 使用 Gzip 或 Bzip2 压缩整个 Phar 存档。

10、Phar::compressFiles — 压缩当前 Phar 存档中的所有文件。

11、Phar::__construct — 构造一个 Phar 存档对象。

12、Phar::convertToData — 将 phar 存档转换为不可执行的 tar 或 zip 文件。

13、Phar::convertToExecutable — 将 phar 存档转换为另一种可执行的 phar 存档文件格式。

14、Phar::copy — 将 phar 存档内部的文件复制到 phar 中的另一个新文件。

15、Phar::count — 返回 Phar 存档中的条目(文件)数。

16、Phar::createDefaultStub — 创建特定于 phar 文件格式的存根。

17、Phar::d ecompress — 解压缩整个 Phar 存档。

18、Phar::d ecompressFiles — 解压缩当前 Phar 存档中的所有文件。

19、Phar::d elMetadata — 删除 phar 的全局元数据。

20、Phar::delete — 删除 phar 档案中的一个文件。

21、Phar::__destruct — 破坏 Phar 存档对象。

22、Phar::extractTo — 将 phar 存档的内容解压到目录中。

23、Phar::getAlias — 获取 Phar 的别名。

24、Phar::getMetadata — 返回 phar 存档元数据。

25、Phar::getModified — 返回 phar 是否被修改。

26、Phar::getPath — 获取磁盘上 Phar 存档的真实路径。

27、Phar::getSignature — 返回 Phar 存档的 MD5/SHA1/SHA256/SHA512/OpenSSL 签名。

28、Phar::getStub — 返回 Phar 存档的 PHP 加载器或引导存根。

29、Phar::getSupportedCompression — 返回支持的压缩算法数组。

30、Phar::getSupportedSignatures — 返回支持的签名类型的数组。

31、Phar::getVersion — 返回 Phar 存档的版本信息。

32、Phar::hasMetadata — 返回 phar 是否具有全局元数据。

33、Phar::interceptFileFuncs — 指示 phar 拦截 fopen、file_get_contents、opendir 和所有与 stat 相关的函数。

24、Phar::isBuffering — 用于确定 Phar 写入操作是被缓冲,还是直接刷新到磁盘。

35、Phar::isCompressed — 如果压缩了整个 phar 存档(.tar.gz/tar.bz 等),则返回 Phar::GZ 或 PHAR::BZ2。

36、Phar::isFileFormat — 如果 phar 存档基于 tar/phar/zip 文件格式,则返回 true,具体取决于参数。

37、Phar::isValidPharFilename — 返回给定的文件名是否为有效的 phar 文件名。

38、Phar::isWritable — 如果可以修改 phar 存档,则返回 true。

39、Phar::loadPhar — 加载任何带有别名的 phar 存档。

40、Phar::mapPhar — 读取当前执行的文件(一个 phar)并注册其清单。

41、Phar::mount — 将外部路径或文件挂载到 phar 存档中的虚拟位置。

42、Phar::mungServer — 定义最多 4 个 $_SERVER 变量的列表,这些变量应修改以执行。

43、Phar::offsetExists — 确定 phar 中是否存在文件。

44、Phar::offsetGet — 获取特定文件的 PharFileInfo 对象。

45、Phar::offsetSet — 将内部文件的内容设置为外部文件的内容。

46、Phar::offsetUnset — 从 phar 中删除文件。

47、Phar::running — 返回磁盘上的完整路径或当前正在执行的 Phar 存档的完整 phar URL。

48、Phar::setAlias — 设置 Phar 存档的别名。

49、Phar::setDefaultStub — 用于将 Phar 存档的 PHP 加载器或引导存根设置为默认加载器。

50、Phar::setMetadata — 设置 phar 存档元数据。

51、Phar::setSignatureAlgorithm — 设置 phar 的签名算法并应用它。

52、Phar::setStub — 用于设置 Phar 存档的 PHP 加载器或引导存根。

53、Phar::startBuffering — 开始缓冲 Phar 写入操作,不要修改磁盘上的 Phar 对象。

54、Phar::stopBuffering — 停止缓冲对 Phar 存档的写入请求,并将更改保存到磁盘。

55、Phar::unlinkArchive — 从磁盘和内存中完全删除 phar 存档。

56、Phar::webPhar — 将来自 Web 浏览器的请求路由到 phar 存档中的内部文件。

  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
PHP Phar类
上一篇: PHP Phar扩展
PHP Phar类
下一篇: PHP PharData类