PHP PharData类

2024-03-12 54

在PHP中,PharData类提供了一个高级接口,用于访问和创建不可执行的tar和zip压缩文件,这些归档文件不包含存根信息,因此Phar扩展也无法执行它们。即使在php.ini中将phar.readonly设置为1,仍然可以使用PharData类来创建、操作和处理普通的zip和tar文件。

通过PharData类,用户可以方便地进行文件的添加、删除、提取和修改等操作,以及执行其他定制化的操作,如加密保护或签名验证。PharData类为您提供了更灵活的方式来处理压缩文件,方便地与PHP应用程序进行集成和处理。

一、PharData类摘要

class PharData 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;

/* 方法 */
public __construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
public compress(int $compression, ?string $extension = null): ?PharData
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 decompress(?string $extension = null): ?PharData
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 isWritable(): bool
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
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(string $stub, int $len = -1): bool
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
}

二、PharData函数

1、PharData::addEmptyDir — 将一个空目录添加到 tar/zip 存档中。

2、PharData::addFile — 将文件系统中的文件添加到 tar/zip 存档中。

3、PharData::addFromString — 将字符串中的文件添加到 tar/zip 存档中。

4、PharData::buildFromDirectory — 从目录中的文件构建一个 tar/zip 存档。

5、PharData::buildFromIterator — 从迭代器构造 tar 或 zip 存档。

6、PharData::compress — 使用 Gzip 或 Bzip2 压缩压缩整个 tar/zip 压缩文件。

7、PharData::compressFiles — 压缩当前 tar/zip 存档中的所有文件。

8、PharData::__construct — 构造一个不可执行的 tar 或 zip 存档对象。

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

10、PharData::convertToExecutable — 将不可执行的 tar/zip 存档转换为可执行的 phar 存档。

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

12、PharData::decompress — 解压缩整个 Phar 存档。

13、PharData::decompressFiles — 解压缩当前 zip 存档中的所有文件。

14、PharData::delMetadata — 删除 zip 存档的全局元数据。

15、PharData::delete — 删除 tar/zip 存档中的文件。

16、PharData::__destruct — 销毁不可执行的 tar 或 zip 存档对象。

17、PharData::extractTo — 将 tar/zip 存档的内容解压到目录中。

18、PharData::isWritable — 如果可以修改 tar/zip 存档,则返回 true。

19、PharData::offsetSet — 将 tar/zip 中文件的内容设置为外部文件或字符串的内容。

20、PharData::offsetUnset — 从 tar/zip 存档中删除文件。

21、PharData::setAlias — 虚拟函数(Phar::setAlias 对 PharData 无效)。

22、PharData::setDefaultStub — 虚拟函数(Phar::setDefaultStub 对 PharData 无效)。

23、PharData::setMetadata — 设置 phar 存档元数据。

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

25、PharData::setStub — 虚拟函数(Phar::setStub 对 PharData 无效)。

  • 广告合作

  • QQ群号:707632017

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