PHP8 RarArchive::setAllowBroken
(PECL rar >= 3.0.0)
RarArchive::setAllowBroken — 是否允许打开损坏的存档
说明
面向对象风格 (method):
public RarArchive::setAllowBroken(bool $allow_broken): bool
过程化风格:
rar_allow_broken_set(RarArchive $rarfile, bool $allow_broken): bool
此方法定义是否可以读取损坏的存档或所有操作 尝试提取存档条目将失败。破损的档案是 打开文件时未检测到错误,但读取时发生错误 条目。
参数
rarfile
一个 RarArchive 对象,用 rar_open() 打开。
allow_broken
是否允许读取损坏的文件 (
true
) 或不允许 (false
)。
返回值
返回 true 或者在失败时返回 false.只有当文件具有 已经关闭。
示例
示例 #1 面向对象风格
<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$a = RarArchive::open($file, null, 'retnull');
$a->setAllowBroken(true);
foreach ($a->getEntries() as $e) {
echo "$e\n";
}
var_dump(count($a));
?>
以上示例的输出类似于:
RarEntry for file "file1.txt" (52b28202) int(1)
示例 #2 过程化风格
<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$a = rar_open($file, null, 'retnull');
rar_allow_broken_set($a, true);
foreach (rar_list($a) as $e) {
echo "$e\n";
}
var_dump(count($a));
?>
参见
- RarArchive::isBroken() - 测试存档是否损坏(不完整)